1

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のコンソールウィンドウでうまく表示されますが、flashvarsは出力されません。私が間違っていることを教えてもらえますか?

ありがとう!

4

3 に答える 3

1

回避策の1つは、TLFランタイム全体を外部にロードするのではなく、埋め込むことです。そのための手順は、アドビによるこのハウツーで説明されています。

公開されたSWFファイルでTLFActionScriptアセットをコンパイルするには:

  • [ファイル]>[公開設定]を選択します。

  • [フラッシュ]タブをクリックします。

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

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

  • [デフォルトのリンケージ]メニューから[コードにマージ]を選択します。

これにより、明らかに、swfファイルのサイズが大幅に増加します。

于 2013-02-20T09:28:43.440 に答える
0

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

これは、swfが最初にロードされたムービーではなくなったため、FlashVarsにアクセスできなくなることを意味します。

エイドリアンパーはこれについて優れたブログアイテムを持っています: http://www.adrianparr.com/?p = 137

于 2012-01-05T02:01:57.050 に答える
-1

これをデバッグモードで実行してみましたか。ステートメント

this[i] = obj[i];

例外を与えています。クラスがDynamicでない限り、Actionscriptでこれを行うことはできません。行にコメントし、それは機能しました。

于 2012-01-05T09:38:39.817 に答える