我正在关注this adobe flashvars example尝试在我的flex 4.5应用程序中加载flashvars。但是,代码不起作用。我真的不明白我做错了什么,或者与示例不同。这是我的index.template.html代码(在html-template文件夹中),它使用swfobject加载应用程序:
function embedPlayer() {
var flashvars = {};
flashvars.userLoggedIn = true;
flashvars.test = "hello";
embedSWF(SWF_FILE, SWF_ID, SWF_WIDTH, SWF_HEIGHT, "9.0", "playerProductInstall.swf", flashvars);
}
以下是我的flex应用程序的简化代码:
<?xml version="1.0" encoding="utf-8"?>
<s:Application
xmlns:d="http://ns.adobe.com/fxg/2008/dt"
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:c="components.*"
initialize="mainInit()"
creationComplete="doCreationComplete()"
applicationComplete="_initializer.applicationComplete()"
xmlns:application="components.application.*"
xmlns:gui="com.gui.*" xmlns:main="com.gui.components.main.*" xmlns:photoTray="com.gui.components.main.photoTray.*">
<fx:Style source="/assets/all.css" />
<fx:Script>
<![CDATA[
import com.gui.components.main.Initializer;
import com.gui.components.main.LayoutsController;
import mx.core.FlexGlobals;
private var _initializer:Initializer;
private var _layoutsController:LayoutsController;
public var userLoggedIn:Boolean;
private function mainInit():void {
_initializer = new Initializer(this);
}
private function doCreationComplete():void {
_initializer.init();
var params:Object = FlexGlobals.topLevelApplication.parameters;
//userLoggedIn = params.userLoggedIn;
_layoutsController = new LayoutsController(this);
}
]]>
</fx:Script>
</s:Application>
我调用FlexGlobals.topLevelApplication.parameters(在creationComplete之后)尝试访问flashvars,adobe说这是在flex 4.5中实现它的方法。我使用Application.application.parameters和root.loaderInfo.parameters的研究都不推荐使用。
有谁看到我做错了什么?我的应用程序在flash builder中工作正常,除了在creationComplete上加载flashvars。
由于
答案 0 :(得分:0)
这就是我在flex 3中的做法,不确定它是否适用于flex 4.5
Application.application.parameters.userLoggedIn
也在这一行
//userLoggedIn = params.userLoggedIn;
任何flash var的值都是您尝试分配布尔值的字符串 这样做。
//userLoggedIn = Boolean(params.userLoggedIn);