2012-01-04 6 views
1

私はフラッシュアプ​​リケーションにFlashvarsをロードするのに奇妙な問題があります。コードを分離して他のドキュメントで試してみましたが、返されるオブジェクトはまだ空です。Flashvarsはロードされません

これは私のHTMLコードです:

<div id="Div1"> 
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="630" height="671" id="testApp" align="middle"> 
    <param name="movie" value="{$this->siteUrl}/flash/testVars.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="FlashVars" value="one=1&two=2" /> 
    <param name="devicefont" value="false" /> 
    <param name="salign" value="" /> 
    <param name="allowScriptAccess" value="always" /> 
    <!--[if !IE]>--> 
    <object type="application/x-shockwave-flash" data="{$this->siteUrl}/flash/testVars.swf" width="630" height="671"> 
     <param name="movie" value="{$this->siteUrl}/flash/testVars.swf" /> 
     <param name="quality" value="high" /> 
     <param name="bgcolor" value="#ffffff" /> 
     <param name="play" value="true" /> 
     <param name="loop" value="true" /> 
     <param name="FlashVars" value="one=1&two=2" /> 
     <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="always" /> 
    <!--<![endif]--> 
     <a href="http://www.adobe.com/go/getflash"> 
      <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /> 
     </a> 
    <!--[if !IE]>--> 
    </object> 
    <!--<![endif]--> 
</object> 

これは私のAS3コードです:

ExternalInterface.call('console.log', "Begin") 
var obj:Object = this.loaderInfo.parameters; 
for(var i:String in obj) 
{ 
    this[i] = obj[i]; 
    ExternalInterface.call('console.log', "Parsing: " + i + " - " + obj[i]) 
} 

これはChromeのコンソールウィンドウでうまく始まりますが、フラッシュバーは印刷されません。私が間違っていることを教えてくれますか?

ありがとうございます!

+1

'this.root.loaderInfo.parameters'を試してください – AsTheWormTurns

+0

残念なことに未定義のままになっています.. – WesleyE

+0

IEでは動作しますか? –

答えて

0

これは「バグ」で、FlashでTLF Textコンポーネントを使用しています。 文書内にTLFテキスト要素を含めるには、テキストレイアウトフレームワーク共有ライブラリ(TLF RSL)も含まれています。 RSLがメインムービーの前にプレローダーを追加します

これは、あなたのSWFがもはや最初にロードされたムービーではなくなったため、FlashVarsが使えなくなることを意味します。

エイドリアン・パーはこのことについてexelentブログの項目があります。 http://www.adrianparr.com/?p=137

-1

を、あなたはデバッグモードでこれを実行してみてくださいました。ステートメント

は例外です。クラスが動的でない限り、これをActionscriptで行うことはできません。行をコメントし、それは働いた。

1

回避策の1つは、TLFランタイム全体を外部に読み込むのではなく埋め込むことです。そのようにするための手順はthis how-to by adobeで説明されています

パブリッシュされたSWFファイル内のTLF ActionScriptの資産をコンパイルするには:

  • は、ファイルを選択してください>設定を公開します。

  • [Flash]タブをクリックします。

  • [スクリプト]メニューの横にある[設定]ボタンをクリックします。

  • [ライブラリパス]タブをクリックします。

  • 「デフォルトのリンケージ」メニューから「コードに結合」を選択します。

これは、明らかに、大幅にSWFファイルのサイズが大きくなります。

関連する問題