在 SWF 之间传递值
Passing values between SWFs
我可以从父 SWF 访问子 SWF 的变量,但我想将父变量传递给子变量以通知和操作子变量中的不同内容(取决于变量,基本条件)。是否可以加载 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'];
}
这是父->子变量读取。我想要双向传输。
您可以只使用查询参数来加载您的 swf :
loader.load(新 URLRequest("main.swf?var=17&var2=lol"));
然后,在您的子 swf 文件中,使用:
stage.root.loaderInfo.parameters.var
stage.root.loaderInfo.parameters.var2
它会完成工作。
在子 SWF 文件中使用 loaderInfo.loader.loaderInfo.content['myVar'];
而不是 loader.content['level'];
。 myVar 是父 SWF 文件中定义的变量。
可以调用或访问 swf 中任何 public 定义的方法或变量。如果您在 swf 中定义了一个名为 doSomething 的方法,那么您可以这样做:
MovieClip(loader.content).doSomething(myParentVariable);
//or
var level:int = MovieClip(loader.content).level;
要在 "parent" swf 到其加载的 "child" swf 之间传递参数,您可以使用 LoaderContext
object 来执行此操作:
loader.swf (parent) :
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 (child) :
trace(this.loaderInfo.parameters.passed_param); // gives : value
希望能帮到你。
我可以从父 SWF 访问子 SWF 的变量,但我想将父变量传递给子变量以通知和操作子变量中的不同内容(取决于变量,基本条件)。是否可以加载 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'];
}
这是父->子变量读取。我想要双向传输。
您可以只使用查询参数来加载您的 swf :
loader.load(新 URLRequest("main.swf?var=17&var2=lol"));
然后,在您的子 swf 文件中,使用:
stage.root.loaderInfo.parameters.var
stage.root.loaderInfo.parameters.var2
它会完成工作。
在子 SWF 文件中使用 loaderInfo.loader.loaderInfo.content['myVar'];
而不是 loader.content['level'];
。 myVar 是父 SWF 文件中定义的变量。
可以调用或访问 swf 中任何 public 定义的方法或变量。如果您在 swf 中定义了一个名为 doSomething 的方法,那么您可以这样做:
MovieClip(loader.content).doSomething(myParentVariable);
//or
var level:int = MovieClip(loader.content).level;
要在 "parent" swf 到其加载的 "child" swf 之间传递参数,您可以使用 LoaderContext
object 来执行此操作:
loader.swf (parent) :
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 (child) :
trace(this.loaderInfo.parameters.passed_param); // gives : value
希望能帮到你。