2011-10-28 42 views
0

我正在關注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外。

感謝

回答

0

這是我如何做到這一點的Flex 3的不知道它適用於彎曲4.5

Application.application.parameters.userLoggedIn 

同樣在這條線

//userLoggedIn = params.userLoggedIn; 

任何閃光var的值一個你正試圖分配一個布爾值的字符串。
所以這樣做。

//userLoggedIn = Boolean(params.userLoggedIn); 
+0

Application.application.parameters已棄用,且不再適用於Flex 4+。我會注意到布爾參數的變化。謝謝。 – Zyren

相關問題