Добавить только ребенка в текущий кадр - PullRequest
1 голос
/ 29 сентября 2011

Можно ли добавить дочерний элемент только в текущий кадр?

Я знаю, что вы можете просто удалить / скрыть их и сгенерировать / показать их снова.

Но нет ли более легкого пути?

Ответы [ 2 ]

2 голосов
/ 29 сентября 2011

Старый школьный путь:

Если у вас есть временная шкала, вы можете добавить мувиклип как держатель только для этого кадра.Зажим держателя существует только в этом кадре.Достигнув этого кадра, вы добавляете реальный клип в список отображения держателя с помощью кода:

holder.addChild(new special_clip())

Таким образом, он будет удален при переходе на другой кадр.Однако в следующий раз, когда вы попадете в кадр, его нужно будет заново создать.

1 голос
/ 29 сентября 2011
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;

Я не уверен, что есть более простой способ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...