2013-10-16 80 views
1

我想用行動腳本來得到我的HTML Flash變數,AS3獲取FlashVars的Flex 4中

在HTML像<OBJECT>標籤:

  <!--[if !IE]>--> 
      <object type="application/x-shockwave-flash" data="test.swf" width="550" height="400"> 
       <param name="movie" value="test.swf" /> 
       <param name="quality" value="high" /> 
       <param name="bgcolor" value="#ffffff" /> 
       <param name="play" value="true" /> 
       <param name="loop" value="true" /> 
       <param name="wmode" value="window" /> 
       <param name="scale" value="showall" /> 
       <param name="menu" value="true" /> 
       <param name="devicefont" value="false" /> 
       <param name="salign" value="" /> 
       <param name="allowScriptAccess" value="sameDomain" /> 
       <param name="FlashVars" value="acc=3001&pwd=test"> 
      <!--<![endif]--> 
       <a href="http://www.adobe.com/go/getflash"> 
        <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" /> 
       </a> 
      <!--[if !IE]>--> 
      </object> 
      <!--<![endif]--> 

和我的動作腳本是用作彈性模型由mxml使用,所以我沒有movieclip或我不能使用this.loaderInfo.parameters;root,因爲沒有displayObject。

是否有其他方法搶在AS3的Flash變量值,

或者我可以在MXML Flash變數然後讓AS3得到變量如:

var paramObj:Object = Application(FlexGlobals.topLevelApplication).parameters; 
var test:String; 
test = paramObj['acc']; 

,並在AS3:

var getText:String = test; 

在此先感謝。

回答

1

由於topLevelApplication是靜態類型,您可以在應用程序的任何位置訪問FlexGlobals,它甚至可以在AS文件中。所以,不要在MXML文件中這樣做,你可以在AS文件中做到這一點

+0

謝謝!我會試試看。 – Shuinvy

0

我終於使用Application.application.parameters! 很奇怪我使用Flex 4.6 SDK,但我的Flex版本是2,所以我不能使用FlexGlobals。 結果是類似於使用FlexGlobals:

在你的HTML:

<script type="text/javascript"> 
      // For version detection, set to min. required Flash Player version, or 0 (or 0.0.0), for no version detection. 
      var swfVersionStr = "11.1.0"; 
      // To use express install, set to playerProductInstall.swf, otherwise the empty string. 
      var xiSwfUrlStr = "playerProductInstall.swf"; 
      var flashvars = {}; 
      var params = {}; 
      params.quality = "high"; 
      params.bgcolor = "#ffffff"; 
      params.allowscriptaccess = "sameDomain"; 
      params.allowfullscreen = "true"; 
      params.FlashVars = "acc=3001&pwd=test"; 

import mx.core.Application;

然後使用代碼在ActionScript或MXML:

Application.application.parameters.acc; 

以上結果是3001.

I a也嘗試添加<param name="acc=3001&pwd=test">,但actionscript無法理解它(結果未定義),但我不確定爲什麼。

+0

好的,我也可以使用! 我的錯是使用標籤