Actionscript 3 在主权财富基金之间传递值

Actionscript 3 在主权财富基金之间传递值,actionscript-3,flash,Actionscript 3,Flash,我可以从父SWF访问子SWF的var,但我想将父var传递给子SWF,以通知和操作子SWF中的不同内容(取决于var,基本if条件)。是否可以加载SWF并传递var或值 这是父->子变量读取。我想要双向传输。您可以使用查询参数加载swf: loader.load(新的URLRequest(“main.swf?var=17&var2=lol”) 然后,在您的孩子swf中,使用: stage.root.loaderInfo.parameters.var stage.root.loaderInfo

我可以从父SWF访问子SWF的var,但我想将父var传递给子SWF,以通知和操作子SWF中的不同内容(取决于var,基本if条件)。是否可以加载SWF并传递var或值




这是父->子变量读取。我想要双向传输。

您可以使用查询参数加载swf:

loader.load(新的URLRequest(“main.swf?var=17&var2=lol”)

然后,在您的孩子swf中,使用:

stage.root.loaderInfo.parameters.var
stage.root.loaderInfo.parameters.var2

它将完成这项工作。

在子SWF中,而不是
loader.content['level']使用
loaderInfo.loader.loaderInfo.content['myVar']。myVar是在父SWF中定义的变量。

可以调用或访问SWF中任何公共定义的方法或变量。如果在swf中定义了名为doSomething的方法,则可以执行以下操作:

MovieClip(loader.content).doSomething(myParentVariable);
//or
var level:int = MovieClip(loader.content).level;

要在“父”swf与其加载的“子”swf之间传递参数,可以使用对象这样做:

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);
trace(this.loaderInfo.parameters.passed_param); // gives : value
load.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);
trace(this.loaderInfo.parameters.passed_param); // gives : value

希望能有所帮助。

它抛出未处理的IOError(#2044)和URL not found(#2035)。这条路是正确的,但这里有点混乱-这是否意味着该方法也适用于子级到父级-或者使用“loaderInfo.loader.loaderInfo.content”更好?使用
loaderInfo.loader.loaderInfo.content
将变量从子级传递到父级。使用
loader.content['level']
将变量从父级传递到子级。您不能使用
loader.content['level']
将变量从子级传递到父级,因为子级中没有
加载器。很高兴听到基本逻辑是双向的。谢谢你的回答。我不在文件中,所以我无法测试它,但我会尽快得到你的帮助。谢谢