我有一个使用加载器的主影片剪辑。 子影片剪辑中有两个按钮,用于通过加载程序调用子影片剪辑。
主影片剪辑: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){
}