我有一个 Flex 3 应用程序(播放器 v9),它加载一个 Flash SWF(AS3,也是播放器 v9),并且需要动态地将一组在运行时已知的参数传递给它。这些是通常通过 flashvars
传递的参数HTML 页面中的元素。嵌入的电影通过 loaderInfo.parameters
访问这些参数。目的。
我试过使用 SWFLoader
和 Loader
参数传递没有成功的类。
相关详情:
loaderInfo.parameters["foo"] = "123"
来自嵌入代码,但参数似乎永远不会出现在嵌入的电影中。 最佳答案
在 URL 中传递此参数无济于事,因为它们是在 html-wrapper 中使用 javascript 代码获取的。
'flashVars' 参数是使用 Application.application.parameters 获取的,因此,您必须在您的情况下手动设置这些参数。
如果您使用 SWFLoader 加载另一个应用程序,您应该创建该对象,该对象将代表加载的应用程序并应用您需要的所有内容:
<mx:Script>
<![CDATA[
import mx.managers.SystemManager;
import mx.controls.Alert;
import mx.events.FlexEvent;
private var loadedApp:Application;
private function onLoadComplete(event:Event):void {
var smAppLoaded:SystemManager = SystemManager(event.target.content);
smAppLoaded.addEventListener(FlexEvent.APPLICATION_COMPLETE, onLoadedAppComplete);
}
private function onLoadedAppComplete(event:FlexEvent):void {
try {
loadedApp = Application(event.target.application);
if(!loadedApp) throw new Error();
loadedApp.parameters["param1"] = "value1";
} catch (e:Error) {
Alert.show("Failed to get application loaded.", "Error", Alert.OK);
}
}
private function onLoadError():void {
Alert.show("Failed to load an application.", "Error", Alert.OK);
}
]]>
</mx:Script>
<mx:SWFLoader
width="100%" height="100%"
source="./AppToLoad.swf"
complete="onLoadComplete(event)"
ioError="onLoadError()" securityError="onLoadError()" />
关于apache-flex - 将 flashvars 样式的参数传递给加载的 SWF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/407858/