我正在關注this adobe flashvars example以嘗試在我的flex 4.5應用程序中加載flashvars。但是,代碼不起作用。我真的不明白我做錯了什麼,或者不同於這個例子。這裏是使用SWFObject的加載應用程序我index.template.html代碼(HTML中的模板文件夾):flashvars無法在Adobe Flash Builder中的Flex 4.5應用程序中加載
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外。
感謝
Application.application.parameters已棄用,且不再適用於Flex 4+。我會注意到布爾參數的變化。謝謝。 – Zyren