仅将子项添加到当前帧

时间:2011-09-28 23:08:45

标签: flash actionscript-3

是否可以仅将子项添加到当前帧?

我知道您可以删除/隐藏它们,然后再次生成/显示它们。

但这不是一种更简单的方法吗?

2 个答案:

答案 0 :(得分:2)

老派方式:

如果您有时间轴,则只能在该帧上添加MovieClip作为持有者。固定夹仅存在于该框架上。到达该帧后,使用代码

将实际剪辑添加到持有者显示列表中

holder.addChild(new special_clip())

这样当你换到另一帧时它就会被移除。但是,下次到达框架时需要重新创建它。

答案 1 :(得分:1)

package
{
    import flash.display.MovieClip;

    public class MyChild extends MovieClip
    {
        // Values
        private var _containingFrame:int = 1;

        /**
         * ...
         * @param e Event.ENTER_FRAME
         */
        private function _check(e:Event):void
        {
            if(parent)
            {
                if(parent.currentFrame != containingFrame)
                {
                    removeEventListener(Event.ENTER_FRAME, _check);
                    parent.removeChild(this);
                }
            }
        }

        /**
         * Getters & Setters
         */
        public function get containingFrame():int{ return _containingFrame; }
        public function set containingFrame(n:int):void
        {
            _containingFrame = n;
            addEventListener(Event.ENTER_FRAME, _check);
        }
    }
}

只需将其作为您孩子的基类。现在,当您添加子项时(通过ActionScript或拖动到舞台上并分配实例名称),您可以继续:

myChild.containingFrame = currentFrame;

我不相信有更简单的方法。