сделать класс предварительного загрузчика вместо того, чтобы иметь его в классе документа

Я создал базовый предварительный загрузчик, который работает в моем классе документов. У меня проблемы с этим. Я предполагаю, что это связано с тем, что класс может и не может получить доступ со сцены? есть 2 проблемы. во-первых, я не могу изменить ключевой кадр, на котором находится сцена, из класса. во-вторых, я получаю сообщение об ошибке 1009, если я это прокомментирую.

package 
{


 import flash.display.MovieClip
    import flash.events.Event;
    import flash.events.ProgressEvent;

    public class Pre extends MovieClip
    {
        public function Pre()
        {
            loaderInfo.addEventListener(Event.COMPLETE,downloadFin);
            loaderInfo.addEventListener(ProgressEvent.PROGRESS,preloadProgress);
            function preloadProgress(progressEvent:ProgressEvent):void
            {
                var floatLoaded:Number=loaderInfo.bytesLoaded/loaderInfo.bytesTotal;
                var newW:Number=this.width*floatLoaded;
                this.Fill.width=newW;
            }
            function downloadFin(event:Event):void
            {
                trace('fin')
                //stage.gotoAndStop(3);//frame with game
            }
        }
    }
}

person Yamiko    schedule 01.11.2011    source источник
comment
вы пробовали this.gotoAndStop(3);??   -  person The_asMan    schedule 01.11.2011
comment
это будет предварительный загрузчик, а не сцена.   -  person Yamiko    schedule 01.11.2011
comment
это будет документ classPre, который должен быть унаследован и должен работать   -  person The_asMan    schedule 01.11.2011
comment
Показанный код представляет собой отдельный класс, прикрепленный к мувиклипу в библиотеке. this.gotoAndStop изменит кадры в мувиклипе Pre, а не в документе. Я сделал эту игру про змей, в которой было 4 или 5 разных яблок. каждый на отдельном кадре.   -  person Yamiko    schedule 01.11.2011
comment
аааа, вы упомянули класс документа, и я подумал, что в любом случае это относится к Pre, поскольку Pre должен быть уже добавлен на сцену, чтобы иметь доступ к сцене. Если это не так, опубликуйте свой класс документа.   -  person The_asMan    schedule 01.11.2011


Ответы (1)


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

private function setupPreloader() : void
{
    preloader.addEventListener(Event.COMPLETE , onPreloaderComplete);
preloader.start();
}

private function onPreloaderComplete(event : Event) : void
{
preloader.removeEventListener(Event.COMPLETE, onPreloaderComplete);
preloader.dispose();

gotoAndStop(3);
}
person Mattias    schedule 01.11.2011
comment
Есть ли способ сделать это в моем классе предварительного загрузчика, а не в классе документа? - person Yamiko; 21.05.2012