我可以从父SWF到达子SWF的var但是我想将父var传递给子以通知并操作子中的不同事物(取决于var,如果条件是基本的)。是否可以加载SWF并传递var或值?
private function callFile()
{
loader = new Loader;
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);
loader.load(new URLRequest("main.swf"));
}
private function onLoaded(e:Event)
{
level_no = loader.content['level'];
}
这是parent->子变量read。我希望双向转移。
答案 0 :(得分:3)
在" parent"之间传递参数swf到它的孩子" swf,您可以使用LoaderContext
对象来执行此操作:
loader.swf(父级):
var context:LoaderContext = new LoaderContext();
context.parameters = {'passed_param': 'value'};
var loader:Loader = new Loader();
loader.load(new URLRequest('loaded.swf'), context);
addChild(loader);
loaded.swf(孩子):
trace(this.loaderInfo.parameters.passed_param); // gives : value
希望可以提供帮助。
答案 1 :(得分:1)
在子SWF中,而不是loader.content['level'];
使用loaderInfo.loader.loaderInfo.content['myVar'];
。 myVar是在父SWF中定义的变量。
答案 2 :(得分:1)
可以调用或访问swf中的任何公共定义的方法或变量。如果在swf中定义名为doSomething的方法,则可以执行以下操作:
MovieClip(loader.content).doSomething(myParentVariable);
//or
var level:int = MovieClip(loader.content).level;
答案 3 :(得分:0)
您可以使用查询参数加载您的swf:
loader.load(new URLRequest(“main.swf?var = 17& var2 = lol”));
然后,在您的孩子swf中,使用:
stage.root.loaderInfo.parameters.var
stage.root.loaderInfo.parameters.var2
它将完成这项工作。