2011-10-28 15 views
0

フレックス4.5アプリケーションでflashvarsをロードしようとすると、this adobe flashvars exampleに従っています。しかし、コードは機能していません。私は、私が間違ってやっていることを実際に理解していないか、例とは異なっている。ここに私のindex.template.htmlコードは、アプリケーションをロードするためにswfobjectを使用する(HTMLテンプレートフォルダ内)である:Adob​​e Flash BuilderでFlex 4.5アプリケーションでFlashvarsがロードされない

<?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> 

 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アプリケーションから単純化されたコードがありますFlexGlobals.topLevelApplication.parameters(creationCompleteの後)を呼び出して、flashvarsにアクセスします。これは、Adobe Flexがflex 4.5でそれを行う方法です。 Application.application.parametersとroot.loaderInfo.parametersを使用した私の研究から、どちらも推奨されていません。

誰かが私が間違っているのを見ていますか?私のアプリケーションは、creationCompleteにロードするflashvarsを除いて、フラッシュビルダーでうまく動作します。

おかげ

答えて

0

これは私がフレックスでそれを行う方法である3それは任意のフラッシュvarの値がある

//userLoggedIn = params.userLoggedIn; 

このラインでも4.5

Application.application.parameters.userLoggedIn 

を曲げるために適用されていないことを確認ブール値を割り当てようとしている文字列。
これはこれを行います。

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

Application.application.parametersは推奨されなくなり、フレックス4+では使用できなくなりました。私はブーリアンパラメータの変更に注意します。ありがとう。 – Zyren

関連する問題