【问题标题】:Removing child from MovieClip's timeline从 MovieClip 的时间线中删除子项
【发布时间】:2015-09-11 01:46:07
【问题描述】:

我正在加载 swf 文件并从 swf 库中的 Linkage 创建 MovieClip 对象。 MovieClip 时间轴中有两帧,分开,没有补间。框架或对象中没有代码。帧中的所有对象都是MovieClip,每个都包含一个帧,其中包含图形对象。第一帧有 12 个对象,第二帧有 1 个。

我正在尝试从第一帧中删除一个对象:

var mc:MovieClip = new clss() as MovieClip;
trace("total frames: "+mc.totalFrames);
mc.gotoAndStop(1);
trace("first frame numChildren: "+mc.numChildren);
mc.removeChildAt(0);
trace("first frame numChildren: "+mc.numChildren);
mc.gotoAndStop(2);
trace("second frame numChildren: "+mc.numChildren);
mc.gotoAndStop(1);
trace("first frame numChildren: "+mc.numChildren);

我得到了:

total frames: 2
first frame numChildren: 12
first frame numChildren: 11
second frame numChildren: 1
first frame numChildren: 12

为什么又是 12 个对象?

【问题讨论】:

    标签: actionscript-3 flash


    【解决方案1】:

    简而言之:不要使用框架。

    在西瓜中:框架就像一个状态。您可以操纵状态,但无论何时返回帧,都会重新创建原始状态。

    这就是为什么在控制程序流程时框架是一个糟糕的选择:它们不会保持自己的状态。

    这就是为什么您不应该使用框架来组织对象的状态。如果你想改变它的状态,至少不会。


    你的说法有矛盾:

    并且有一个带有图形的框架。第一帧有 12 个对象,第二帧有 1 个。

    它要么有一个带图形的帧,要么在第 1 帧和第 2 帧上分别有 12 个和 1 个对象,这意味着 2 个带图形的帧。


    您已经有一个与您的对象关联的类名:clss 这不是很具有描述性。它也应该以大写字母开头。考虑到您问题中的图像,CirclesCircleGroup 听起来更合适。 现在您所要做的就是向类添加方法,将对象的状态从 12 个圆更改为只有 1 个。

    鉴于放置的简单性和明显的随机性,我不会创建库符号并在代码中完成这一切。为此,您必须将圆的符号与类名相关联,以便创建它的实例。

    【讨论】:

    • 我的意思是,“时间轴上的每个影片剪辑都包含一帧,其中包含图形对象”。我会更正描述。
    • 我将描述我要解决的问题。 swf 文件是我试图解析的外部资产库。每个项目的时间线都包含动画和占位符。我做了两遍。首先,我记下所有占位符的位置并将它们从 MovieClip 中删除。在第二遍中,我制作了时间线的 PNG 序列。当我在第二次通过后发现在 PNG 图像上可见的已删除占位符时,我感到非常惊讶。我认为,现在解决我的问题的唯一方法是一次性完成所有工作。谢谢!
    • @Porcelain 最终的目标是什么?为什么要保存为png?为什么要删除占位符?它们是 DisplayObject Containers,因此您可以简单地将内容添加到每个占位符。
    • 我们的目标是栅格化我们的艺术家制作的矢量动画并将其保存在 png atlas 中。我们使用 png 是因为 Starling - 我们用来在许多平台上构建的框架。我不需要占位符对象本身,我只需要占位符的坐标、帧和实例名称,所以我可以动态地将一些效果或项目放在动画时间轴的正确位置。我不能使用本机 MovieClips 或任何其他对象 - 我们使用 Starling 的 GPU 渲染 - 它要快得多,尤其是在移动设备上。
    猜你喜欢
    • 2012-08-15
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 2014-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多