Actionscript 3 创建一个预加载程序类,而不是将其包含在文档类中

Actionscript 3 创建一个预加载程序类,而不是将其包含在文档类中,actionscript-3,oop,class,preloader,stage,Actionscript 3,Oop,Class,Preloader,Stage,我已经构建了一个在我的文档类中运行的基本预加载程序。我有麻烦了。我猜这是因为一个类可以和不能从舞台上访问什么? 有两个问题。首先,我不能从课堂上更改舞台上的关键帧。第二个问题是,如果我把它注释掉,我会得到一个错误1009 package { import flash.display.MovieClip import flash.events.Event; import flash.events.ProgressEvent; public class Pre ex

我已经构建了一个在我的文档类中运行的基本预加载程序。我有麻烦了。我猜这是因为一个类可以和不能从舞台上访问什么? 有两个问题。首先,我不能从课堂上更改舞台上的关键帧。第二个问题是,如果我把它注释掉,我会得到一个错误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
            }
        }
    }
}

我建议您在预加载程序准备就绪时发送一个事件,使您的预加载程序更通用。然后在document类中添加一个侦听器,如下所示:

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

你试过这个了吗;??这将是预加载程序,而不是阶段。这将是文档类“Pre”,它应该继承并工作。显示的代码是附加到库中movieClip的单独类。this.gotoAndStop将更改预电影剪辑中的帧,而不是文档中的帧。我做的这是一个蛇游戏,我做了4或5个不同的苹果。每个都在不同的框架上。啊,你提到了document类,我认为它指的是“Pre”,在任何情况下,“Pre”需要已经添加到后台才能访问后台。如果这样做不起作用,发布你的文档类。有没有办法让我在预加载类中而不是在文档类中使用它?