as3: как остановить мувиклип - PullRequest
1 голос
/ 19 января 2010

Я работаю над проектом Flash, где весь мой код находится во внешнем файле Document.as.

Как мне настроить вводный мувиклип, который запускается и заканчивается до загрузки других мувиклипов? Сейчас происходит то, что клип загружается вместе со всем остальным в классе Document (контент, пользовательский интерфейс ... и т. Д.). Я хочу, чтобы вступительный клип запустился, остановился, а затем продолжил выполнение остальной части кода в документе.

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

Спасибо.

Ответы [ 2 ]

1 голос
/ 19 января 2010

Вы можете выбрать вступительный MovieClip с помощью действия остановки. Но я бы предложил что-то вроде этого:

class documentOfFLa extends Sprite {
     public var introMC:MovieClip;           // the introduction animation
     public var restOfAnimation:MovieClip;   // whatever is after the intro
     function documentOfFLa() {              // constructor
          introMC.play();
          restOfAnimation.stop();
     }
     public function continueParent():void {  // call this at end of intro
          restOfAnimation.play();
          introMC.stop();
          removeChild(introMC);
     }
}

... в конце вступительной анимации вызовите что-то вроде этого на временной шкале:

this.parent["continueParent"]();

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

1 голос
/ 19 января 2010

В вашем классе документов вы можете получить доступ к любому мувиклипу, который можно найти в первом кадре временной шкалы. Например, мувиклип с именем экземпляра «myClip», помещенный в первый кадр, вы получаете к нему доступ со следующим кодом:

package  
{
    import flash.events.Event;
    import flash.display.MovieClip;

    public class Document extends MovieClip 
    {
        public var myClip:MovieClip;

        public function Document()
        {
            addEventListener(Event.ADDED_TO_STAGE, init);
        }

        private function init(e:Event) : void 
        {
            myClip.stop();
        }
    }
}

С другой стороны, вы можете получить доступ к области видимости вашего документа из временной шкалы во флэш-памяти. Вызов общедоступной функции, определенной для вас Document "functionAtDocument" будет выглядеть так:

Document(this).functionAtDocument();

Код в вашем классе документов:

package  
{
    import flash.display.MovieClip;

    public class Document extends MovieClip 
    {
        // ... missing some code
        public function tracer():void
        {
            trace ('call from flash timeline');
        }
    }
}

Имея это в виду, я думаю, вы можете возвращаться и отправлять значения из шкалы времени в класс и манипулировать любым клипом, который там живет.

...