【问题标题】:To add or not to add a child? with Flash添加还是不添加孩子?带闪光灯
【发布时间】:2011-03-14 20:35:29
【问题描述】:

我正面临一个我无法理解的情况......

我正在编写一个带有自己解决方案的拖放小游戏。游戏从第 1 帧开始,第 150 帧的解。

为了展示解决方案,我选择将所有拖动项目显示在其原始位置,然后将它们逐个淡出,同时在另一个实例中的正确位置淡出。

在“游戏”部分,我确保所有被拖动的项目都被添加回舞台,以确保拖动不会通过其他可拖动对象。所以在我的拖动功能的最后,我添加了“this.parent.parent.addChild(this.parent)”这一行。

我感到困惑的是,当我单击解决方案按钮时,所有拖动的实例都保留在原位,不再响应时间轴操作。如果我取出“this.parent.parent.addChild(this.parent)”位,一切正常(除了能够拖到其他对象后面)

有人可以向我解释这种行为吗?

TIA


嗯……我想我说得太早了!

我的场景如下: 我在舞台的第一层放置了 5 个选择 MC。 choice MC 包含 dragButton MC 的实例(映射到它自己的类)和 choiceText MC 的实例看起来像:


[dragButton] 选择文本


目的是让用户将 dragButton MC 拖到 choiceGroup MC 的特定实例之上。

为了确保任何被拖动的项目超过任何其他项目,我添加了

this.parent.parent.addChild(this.parent);

在dragButton 的拖拽函数的最后。这具有重新添加包含所选 dragButtonchoice MC 的效果。

经过进一步测试,我意识到这些对象被添加到正确的“容器”中,但不再与时间轴偏好“链接”。

这发生在我淡出选择的“更正”区域,然后在另一个实例的预期位置淡出。但是,“淡入淡出”(Classic Tween)不会抓取任何已重新添加到舞台的 MC。

有没有一种解决方法可以解决我的“淡入/淡出”代码而不是使用时间线补间的问题?

TIA

【问题讨论】:

    标签: flash actionscript-3


    【解决方案1】:

    听起来您将拖动的实例添加到错误的父级。在 actionscript 中,您可以获取任何对象并将其重新分配给任何父级。因此,您需要查找它真正需要附加到哪个父级。

    如果您将子 MC (MovieClip) 添加到另一个父 MC,该父 MC 在视觉上位于其他父剪辑下方,那么它也将位于其他父剪辑下方。作为新父 MC 的内部组件,它继承父 MC 的 z-index,无论父位于何处。

    我建议查看操作面板中的“插入目标路径”命令。

    它允许您导航到要从一个父级重新附加到另一个父级的剪辑,然后查看它推荐的路径。

    您可能会对从一个 MC(MovieClip)到另一个 MC(电影剪辑)的实际路径感到惊讶...

    此外,通过使用该长度的时间线,您实际上可能会导致正确的父级从舞台上“消失”,因为它位于不包含正确标记的 MC 的关键帧上,并且可能导致附加任何代码它不会被加载。

    我不确定你在游戏中的表现如何,所以这些都只是猜测......

    【讨论】:

    • 我相信你已经把它钉在了头上......从几英里远的地方记住你!我一定是离森林太近了,看不到树。这就是说“插入目标路径”在这种情况下不起作用,因为我正在使用外部类文件......不过谢谢你的提示!
    猜你喜欢
    • 1970-01-01
    • 2021-07-21
    • 2015-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-19
    • 2019-06-21
    • 2022-10-24
    相关资源
    最近更新 更多