Flash AS3 LoaderContext参数带"未定义"

时间:2016-04-12 13:30:34

标签: actionscript-3 flash

我有一个使用加载器的主影片剪辑。 子影片剪辑中有两个按钮,用于通过加载程序调用子影片剪辑。

主影片剪辑:main.wf
Initial Loader Movie clip:sub.swf

按钮A单击:调用a.swf
按钮B单击:调用b.swf

我的意思是当我点击每个按钮时,这个加载器会加载两个影片剪辑。

主影片剪辑控件使用LoaderContext在子影片剪辑上传递变量。

问题是第二个影片剪辑(b.swf)无法正确获取加载器上下文参数。 错误消息是参数值未定义。

// main.swf
var context:LoaderContext = new LoaderContext();
context.parameters = {"qty": qty};

这让我抓狂,因为当我点击按钮A以便调用a.swf(儿童电影剪辑) 该参数在a.swf中正确获取结果。

// a.swf
var qty = this.loaderInfo.parameters.qty; // it's okay at a.swf

但是我已经在a.swf中完成了一个调用方法的工作,该方法位于main.swf中。 该方法执行调用b.swf的工作。问题发生在这个时候。

// b.swf
var qty = this.loaderInfo.parameters.qty; // error : undefined value

请给我一个建议来解决它。

// main.swf
var context:LoaderContext = new LoaderContext();
context.parameters = {"qty": "start"};

var myLoader:Loader = new Loader();     

var url:URLRequest = new URLRequest("sub.swf"); 
myLoader.load(url, context);                                 
addChild(myLoader);

function nextStep0(qty:String):void{
    // sub.swf's called this method for updating qty
    this.qty = qty;
    context.parameters = {"qty": qty};

    url = new URLRequest("a.swf"); 
    myLoader.load(url, context);  
}

function nextStep1(qty:String):void{
    // a.swf's called this method for updating qty
    this.qty = qty;
    context.parameters = {"qty": qty};

    url = new URLRequest("b.swf"); 
    myLoader.load(url, context);  
}

这是最初称为子子的。

sub.swf
var qty_char =  this.loaderInfo.parameters.qty; // "start" get it works 
button.addEventListener(MouseEvent.CLICK, clichandle);.... // Event Listener Click

fuction clichandle(e:MouseEvent){
    var r_movie:MovieClip = this.parent.parent as MovieClip;
    r_movie.nextStep0("alpha");
}

这是儿童电影剪辑

a.swf
var qty_char =  this.loaderInfo.parameters.qty; // "alpha" get it works 
button.addEventListener(MouseEvent.CLICK, clichandle);.... // Event Listener Click

fuction clichandle(e:MouseEvent){
    var r_movie:MovieClip = this.parent.parent as MovieClip;
    r_movie.nextStep1("beta");
}

这也是儿童电影剪辑

b.swf
var qty_char =  this.loaderInfo.parameters.qty; // error, undefined.
button.addEventListener(MouseEvent.CLICK, clichandle);.... // Event Listener Click

fuction clichandle(e:MouseEvent){

}

0 个答案:

没有答案