添加 Sprite 的多个实例?

2024-03-03

我正在构建一个自定义图像选择器,它显示 6 个替代版本。然而,照片只显示在第 6 件商品上。

_model.selectedPhoto返回一个 Sprite,并且不会让应用程序正常运行。

但是当我使用_model.photos[ii],每个项目都添加了照片 - 这是为什么?我需要添加_model.selectedPhoto每一个s:Sprite

        for (var ii:int; ii < 6; ii++)
        {
            //Create BG
            var s:Sprite = new Sprite();
            s.graphics.beginFill(Math.random() * 0xffffff, 0.4);
            s.graphics.drawRect(0, 0, 291, 184);
            //add Photo
            var p:Sprite = new Sprite();
            p.addChild(_model.selectedPhoto);
            p.scaleX = p.scaleY = 0.2;
            p.x = 0;
            p.y = 0;
            s.addChild(p);
            cards.push(s);
        }

嗯,它只显示第 6 个项目上的一张照片,因为您运行了 6 次 for 循环,并将所选照片连续添加到每个新精灵中。您会看到,当您将一个显示对象添加到另一个显示对象,然后将同一显示对象添加到其他对象时,原始项目将从第一个显示对象中拉出并添加到下一个显示对象中。我知道这样写可能很难理解,所以让我们这样分解:

var photo:Sprite = new Sprite();

var container1:Sprite = new Sprite();

var container2:Sprite = new Sprite();

//Add to the first container
container1.addChild(photo);

//At this point when you add to the next container, the object is removed from container1 and placed inside container 2
container2.addChild(photo);

这就是为什么当您使用 _model.photos[ii] 时,您需要为在 for 循环中创建的 6 个新容器精灵中的每一个添加一张唯一的图片,因为每个容器中都需要添加唯一的项目。您可以通过使用随每个循环递增的数组索引(ii var)来访问这些唯一的项目。

如果您想将相同的图片添加到每六个项目中,那么您将需要将原始图片的数据复制 6 次。实现此目的的一种方法是使用 URLLoader 对象并重新加载构成原始图片的二进制数据。你会这样做:

var originalPictureLoader:URLLoader = new URLLoader();

originalPictureLoader.addEventListener(Event.COMPLETE, originalPictureLoaded);

originalPictureLoader.dataFormat = URLLoaderDataFormat.BINARY;

originalPicture.load(new URLRequest("http://www.mysite.com/picture.jpg"));

private function originalPictureLoaded(e:Event):void
{
    var pictureBytes:ByteArray = URLLoader(e.currentTarget).data as ByteArray;

    var imageDiplicateLoader:Loader;

    for (var ii:int; ii < 6; ii++)
    {
        //Create BG
        var s:Sprite = new Sprite();
        s.graphics.beginFill(Math.random() * 0xffffff, 0.4);
        s.graphics.drawRect(0, 0, 291, 184);
        //add Photo
        var p:Sprite = new Sprite();

        imageDiplicateLoader = new Loader();
        imageDiplicateLoader.loadBytes(pictureBytes);

        p.addChild(imageDiplicateLoader);
        p.scaleX = p.scaleY = 0.2;
        p.x = 0;
        p.y = 0;
        s.addChild(p);
        cards.push(s);
    }
}

现在请记住,这只是一种方法,而且我已将其写在脑海中。所以,我不确定,但您可能需要在 for 循环内复制 pictureBytes 数据,但我不这么认为。如果你确实需要这样做,你可以这样做:

var bytesCopy:ByteArray = new ByteArray();
pictureBytes.position = 0;
bytesCopy.writeBytes(pictureBytes);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

添加 Sprite 的多个实例? 的相关文章

  • AS3 for ios:如何序列化数组然后保存它

    我有一个多维数组 我想序列化它 然后使用共享对象保存它 我尝试了很多事情 但每次都会出现问题 JSON 不能有类型 ByteArray 结果不是 String 那么 SharedObject 不想保存它 共享对象可能不是解决方案的一部分 所
  • Actionscript 内存管理、垃圾收集

    这个博客 http blogagic com 163 flex memory management and memory leaks varref 和其他人 指出 在清理对象时 您应该在 dispose 方法中将对象引用设置为 null 但
  • 使用 Actionscript 3 连接到数据库 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在寻找有关如何基于数据库在 Flash 中动态创建内容的建议 最初我想将数据库导出到 XML 文件并使用内置的 Actionscr
  • 为动态图像生成 CSS 精灵

    我有一个网页 其中包含大约 20 50 个动态图像 从非静态源提供的图像 这些图像通过基于请求 URL 的 servlet 提供 这会导致每个图像生成一个请求 从而导致性能下降 如果这些图像是静态的 我将创建一个 CSS 精灵并用一个请求替
  • Flash 点击时不打开链接

    我用 Flash 创建了这个横幅 我需要单击它来打开一个网页 我使用了这个 Actionscript 3 0 代码 link btn addEventListener MouseEvent CLICK openurl function op
  • 实例变量的多态性[重复]

    这个问题在这里已经有答案了 这是我写的三个类 public class Shape public int x 0 public void getArea System out println I don t know my area pub
  • 定义 fl.controls: 找不到标签

    我正在使用 ActionScript 3 在 FlashDevelop 中进行开发 当我尝试执行以下操作时出现以下错误import fl controls Label Definition fl controls Label could n
  • 如何在flex中绘制虚线

    经过一番搜索和阅读 Graphics 类文档后 我找不到指定线条的线条样式的方法 我的意思是这条线是实线还是虚线 有人可以帮助我吗 Thanks 无论如何 您不能仅仅通过使用 Flex 库类 当然 你也可以自己做 这是一个实现它的类 根据找
  • as3命名空间-获取一个带有减号的属性[重复]

    这个问题在这里已经有答案了 可能的重复 e4x as3 如何访问名称中带有破折号的节点 https stackoverflow com questions 5317404 e4x as3 how to access a node with
  • C# 中类实例的内存使用情况[重复]

    这个问题在这里已经有答案了 可能的重复 C NET 对象使用多少内存 https stackoverflow com questions 426396 how much memory does a c net object use 就像标题
  • 用圆形减去(遮盖掉?)路径

    我正在使用 Spark Path 在 Flex 中绘制一条路径 我想从这条路径中减去一个圆形 如下图所示 道路又黑又宽 有任何想法吗 我尝试使用 Shape 对象创建蒙版 但无法完全创建其中有圆孔的蒙版 找到了 不涉及口罩 我拿了Path并
  • Cocos2d:CCSpriteBatch 节点是否仅绘制可见属性设置为 true 的精灵?

    CCSpriteBatch 节点是否仅绘制可见属性设置为 true 的精灵 或者它也考虑屏幕尺寸 换句话说 如果节点内的精灵位于屏幕之外 opengl 绘制调用的性能是否会反映这一点 不 不 CCSpriteBatchNode 始终绘制所有
  • 在 Flex 选项卡式视图导航器之间切换

    我正在开发 FlexTabbedViewNavigatorApplication具有三个选项卡 ViewNavigator 元素 我想根据用户操作 通过 ActionScript 代码 从一个 ViewNavigator 切换到另一个 Vi
  • Flex 字典字面量

    在 Flex 中工作 我需要用相当复杂的结构填充字典 基于本文档页面 http livedocs adobe com flex 3 html help html content 10 Lists of data 4 html我尝试通过以下语
  • Actionscript 对象的属性数量

    如何获取通用 Actionscript 对象中的属性数量 如数组长度 您必须循环所有元素才能对它们进行计数 function objectLength myObject Object int var cnt int 0 for var s
  • Flex 与 ActionScript

    我正在尝试构建 实现一个 Flash 视频播放器来播放视频 我研究了 Flex 并仅使用 VideoElement 构建了一个基本应用程序 它在没有静态链接库的情况下编译为 41k 在链接库时编译为 300k 我生成了报告 但仍然不确定为什
  • 如何在动作脚本 3 中设置/访问外部 swf 文件的动态文本字段?

    我正在处理一个 fla 文件 其中添加了一个 swf 文件 我如何在该 swf 文件的动态文本上设置文本 有没有直接设置文本的方法 我不想在 url 中作为参数传递 我试过这样 var rq URLRequest new URLReques
  • Flash 照片上传 - 从网络摄像头拍摄照片 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • OpenGL ES 2.0 中的纹理点?

    我正在尝试在 OpenGL ES 2 0 中为粒子系统实现纹理点 例如点精灵 我遇到的问题是所有点都渲染为实心黑色方块 而不是正确映射纹理 我已经验证 gl PointCoord 实际上返回从 0 0 到 1 0 的 x y 值 这将映射到
  • pygame:使用 sprite.RenderPlain 绘制精灵组的顺序

    我有一个精灵组 需要按一定的顺序绘制 以便其精灵按应有的方式重叠 然而 即使使用运算符模块函数 sorted self sprites key attrgetter y x 对组进行排序 顺序也是错误的 我该如何解决这个问题 直截了当地说

随机推荐

  • 为 php 5.6 添加 mongodb 扩展(XAMPP)

    我在这里读过一些关于解决我的问题的帖子 但都不适用于 php 5 6 我下载了php mongo 1 6 8 zip and php mongo 1 6 7 zip并尝试了所有 dll 扩展名 所有扩展名都给出了一个或另一个错误 错误信息
  • 如何为 LLVM IR 生成元数据?

    我正在尝试为我生成的 LLVM IR 生成元数据 我想生成以下形式的元数据 nvvm annotations 0 0 metadata void foo metadata kernel i32 1 其中 foo 是我的 LLVM IR 中的
  • orchard cms:如何将媒体选择器字段添加到自定义部分

    我的问题类似于questions 10369967 orchard cms 如何将媒体选择器字段添加到新模块 https stackoverflow com questions 10369967 orchard cms how to add
  • 我应该在 SharpZipLib 中选择哪种压缩类型?

    我有一个发送文件和文件夹的文件传输应用程序 服务器 客户端 我正在尝试通过 TCP 套接字 发送数据 我已经为传输数据的方式制定了一些规则 因此 如果它发送包含许多文件的大文件夹 则应首先将它们压缩为单个 zip 文件 然后再发送发送的 z
  • 领域模型模式示例

    我只是想找一些 Martin Fowler 的例子领域模型 http martinfowler com eaaCatalog domainModel html模式 而我不能 根据我在互联网领域模型上发现的内容 只是向类添加一些 逻辑 方法
  • 如何防止 PyCharm 覆盖 matplotlib 中设置的默认后端?

    我已将默认后端设置为Qt5Agg in config matplotlib matplotlibrc 如果我使用常规 ssh 提示符并打开 这会起作用ipython并运行import matplotlib as mpl 我正确地得到 mpl
  • 带时间戳零的 PHP 日期返回 1 小时

    如果我执行以下操作 date H i s 0 它返回01 00 00 同时它should give 00 00 00 它可能与我的本地主机的时区有关吗 世界标准时间 1 如果是这样 我该如何解决这个问题 致电前设置时区date 你将使用da
  • 为什么在SciPy中使用integrate.odeint时不调用Dfun(gradient)?

    任何人都可以提供一个向 a 提供雅可比行列式的示例吗 integrate odeintSciPy 中的函数 我尝试从 SciPy 教程运行此代码代码示例 http docs scipy org doc scipy dev reference
  • gwt 中的会话管理

    我正在开发 GWT ext 应用程序 在此应用程序中 我管理客户端会话 为此我写了下面的代码 管理会话 导入 com google gwt user client Timer public class ClientTimers privat
  • 创建霍夫曼树时增加权重时哪个节点向左或向右

    我正在尝试创建一棵霍夫曼树 但阅读互联网上的几个链接时我有点困惑 有些在左侧添加较大 就权重而言 的子节点 有些在右侧添加 所以我的问题是 1 在哪里添加节点 左边还是右边 真的有问题吗 2 我可以在右侧添加权重较大的节点还是在左侧添加权重
  • 使用映射与记录之间的差异以及何时使用

    我正在尝试将一些使用 Map 的 Java 代码映射到 Typescript 代码 我最初的想法是在 Typescript 中使用 Map 但对于我创建的界面来说这并没有成功 相反 我发现 Records 似乎完美地模拟了 Java 的 M
  • Nodejs API 调用将未定义返回到 lambda 函数

    这是将调用 api 的 aws lambda 函数 use strict var request require request exports handler function event context callback let url
  • 添加对旧变更日志文件的更改。液体碱

    我有很多包含数据库初始数据的变更日志文件 之前所有表都位于 Postgres 公共模式中 但现在我已将它们分布在不同模式之间 以便初始数据的更改无法到达表 我可以用初始数据更改所有旧文件并添加 schemaName my schema 还是
  • 从电子邮件标头转换数据

    有谁可以帮助我如何转换电子邮件标题中的数据 我有电子邮件标题中的下一个日期格式 Wed 28 Apr 2010 21 59 49 0400 我需要将它们转换为 mysql 日期或时间戳 谢谢 你应该使用DateTime http php n
  • 让其他人可以在 Xcode 中访问我的开发团队

    我有一个 单一会员 Apple 会员资料 与我合作的一位开发人员需要访问我的开发团队来测试他在其设备上构建的应用程序 Xcode 不允许他在没有该资料的情况下构建应用程序 我怎样才能让他访问开发团队 而不必向他提供我帐户的登录凭据 由于您拥
  • 如何从另一张表中获取精确匹配的数据?

    我在 数据库 工作表中有数据 如下所示 我编写了一个简短的代码来获取与 数据库 工作表中的某些条件匹配的数据 并将其粘贴到另一张 选定记录 工作表上 这是我的代码 Sub CopyData Dim db As Worksheet Dim r
  • 我应该将私有类方法设置为静态吗?

    是否有将类中的私有方法设为静态的最佳实践 我有一堂有几种方法的课 其中一些可以很容易地静态化 因为它们只是处理数据 我应该让它们静态还是让它们保持原样 这更多的是风格问题吗 有性能方面的考虑吗 Edit 方法可以变成静态的 但是应该吗 ht
  • 为什么 strdup 被认为是邪恶的

    我看过一些海报说strdup是邪恶的 对此有共识吗 我使用它时没有任何负罪感 并且看不出为什么它比使用它更糟糕malloc memcpy 我唯一能想到的可能是赚钱strdup众所周知 调用者可能会滥用它 例如 没有意识到他们必须释放返回的内
  • 将秒转换为分钟、小时和天的函数

    问题 编写一个程序 要求用户输入秒数 其工作原理如下 一分钟有 60 秒 如果用户输入的秒数大于或等于 60 则程序应显示该秒数中的分钟数 一小时有 3600 秒 如果用户输入的秒数大于或等于 3600 则程序应显示该秒数内的小时数 一天有
  • 添加 Sprite 的多个实例?

    我正在构建一个自定义图像选择器 它显示 6 个替代版本 然而 照片只显示在第 6 件商品上 model selectedPhoto返回一个 Sprite 并且不会让应用程序正常运行 但是当我使用 model photos ii 每个项目都添