【问题标题】:Confused about automatic instances and moving sprites in AS3对 AS3 中的自动实例和移动精灵感到困惑
【发布时间】:2021-12-28 19:59:32
【问题描述】:

我创建了名为 Space 的大 Sprite 和大量较小的 Sprite,并将它们保存在数组 Cells 中。 问题 1。 当我跟踪 Cell 的名称(like Cells[i].name) 时,它显示“实例”,甚至数字 2、4、6,... 当我跟踪空间名称for (...Space.numChildren; i++){trace(Space.getChildAt(i).name) 的孩子时,它显示奇数 'instance1' 'instance3','instance5'

问题是为什么会有两组不同的精灵,而我需要对哪一组进行进一步的研究——改变坐标、颜色等等。两者有什么关系?

问题 2。 两个集合都显示所有单元格的 x 和 y 坐标设置为 0,尽管当我创建它们时我将其设置为不同的值,并且我看到它们正确放置在屏幕上。 当我(通过鼠标)移动其中一个单元格时,我想以相同的方式移动所有单元格组,而不会改变它们之间的相对位置。我只能用第二组实例来做到这一点,但方式很奇怪。我没有像人们期望的那样设置新坐标-c.x += dx; c.y +=dy, 但是c.x =dx; c.y = dy; 我需要澄清一下。

【问题讨论】:

  • 您是在可视化编辑器中创建的还是使用 AS3 代码创建的?
  • 您好,欢迎来到 StackOverflow。碰巧的是,你的问题,就像现在一样,揭示了非常少的有用信息需要回答。请编辑您的帖子,以提供一个最小、完整且可验证的示例 (stackoverflow.com/help/minimal-reproducible-example)。您不会指望任何人在不实际展示算法的情况下就可以判断您算法中的逻辑出了什么问题,对吗?
  • 首先,不要依赖名称,如果您决定在某处添加一些东西,它们可能会发生变化。接下来,更好地动态添加实例,同时将它们组织成一个网格(AS3 可以使用 2D 数组但不能直接使用,更像是列表的列表)。第三,坐标还有很多,你应该检查Space的孩子坐标,这些应该会有所不同,如果不是,你在这个描述中错过了一个DOM层。正常的X和Y是相对于parent的,使用localToGlobal()进行转换。

标签: actionscript-3 dom


【解决方案1】:

谢谢大家热心回答。 我已经想通了。问题是我不明白在数组中我保存了 new 运算符返回的 as3 对象的地址,但图形对象的地址必须保存在类对象中,我必须使用它们来访问图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 2019-11-21
    • 2021-11-10
    相关资源
    最近更新 更多