在SWF之间传递值

时间:2015-03-18 12:21:35

标签: actionscript-3 flash

我可以从父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。我希望双向转移。

4 个答案:

答案 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中定义名为doS​​omething的方法,则可以执行以下操作:

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

它将完成这项工作。