创建一个预加载器类而不是在文档类中

时间:2011-11-01 01:23:46

标签: actionscript-3 oop class preloader stage

我已经构建了一个在我的文档类中运行的基本预加载器。我遇到了麻烦。我猜它是由于一个类可以和不能从舞台上访问的? 有两个问题。首先是我无法改变舞台上的关键帧。如果我发表评论,第二个是我得到错误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
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

我建议您在预加载器准备就绪时调度事件,使yor预加载器更通用。然后在文档类中添加一个侦听器,如下所示:

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);
}