Actionscript 3 预加载程序的奇怪问题

Actionscript 3 预加载程序的奇怪问题,actionscript-3,flash,flash-cs5,Actionscript 3,Flash,Flash Cs5,我的预加载程序有问题 预加载程序代码: import flash.net.URLRequest; import flash.display.Loader; import flash.events.Event; import flash.events.ProgressEvent; var game:MovieClip var added:Boolean; var mLoader:Loader = new Loader(); var mRequest:URLRequest = new URLRe

我的预加载程序有问题

预加载程序代码:

import flash.net.URLRequest;
import flash.display.Loader;
import flash.events.Event;
import flash.events.ProgressEvent;

var game:MovieClip
var added:Boolean;

var mLoader:Loader = new Loader();
var mRequest:URLRequest = new URLRequest("source.swf");
mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
mLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler);
mLoader.load(mRequest);

function onCompleteHandler(e:Event):void {
    game = e.currentTarget.content
    game.alpha = 0;
}
function onProgressHandler(e:ProgressEvent):void {
    loader.loadBar.setProgress(e.bytesLoaded, e.bytesTotal);
}

addEventListener(Event.ENTER_FRAME, function(e:Event):void {
                    if(game != null){
                        if(!added) {
                            addChild(game);
                            added = true;
                        }
                        if(game.alpha < 1) game.alpha += 0.1;
当我在这段代码之间得到注释/**/时,游戏加载正确。 顺便说一句,我试试这个。父母和父母。而不是舞台。但一切都没有改变:(


有人知道这个问题吗?

你需要在使用前检查一下舞台

if (stage) {
   addStageEvent();

} else {
   this.addEventListener(Event.ADDED_TO_STAGE, addStageEvent);
}

function addStageEvent(e:Event = null):void {
     //put the 141-155 line code here
}

非常感谢:)它很有效!但为什么会这样?在此之前,我从未使用此事件。当displayobject添加到stage时会触发此事件,然后设置displayobject的stage值。因此,在将预加载程序添加到stage之前,stage值为null,这是什么导致了错误。
if (stage) {
   addStageEvent();

} else {
   this.addEventListener(Event.ADDED_TO_STAGE, addStageEvent);
}

function addStageEvent(e:Event = null):void {
     //put the 141-155 line code here
}