1

次のようなコマンドを使用してフラッシュアプ​​リケーションから通信しています:ExternalInterface.call( "hello"、 "world")

これは、C#側で次のように処理されます。

string swfPath = Directory.GetCurrentDirectory() + Path.DirectorySeparatorChar + "test.swf";
this.axFlash.LoadMovie(1, swfPath);
this.axFlash.FlashCall += new AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEventHandler(axFlash_FlashCall);

そして、偶関数は次のように宣言されます

void axFlash_FlashCall(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEvent e)
{
}

画面上にTLFテキストを使用するように設定されたテキストボックスがある限り、axFlash_FlashCalは正常と呼ばれます。(どのテキストボックスでもかまいません。特定のIDはありません)。テキストボックスがないと、偶数は起動しません。(ExternalInterface.Avaliableがtrueに設定されている場合でも)

出力としてFlash10と9の両方を使用して、CS4とCS5を使用して公開しようとしました。これらのことのどれも違いを生みませんでした。

AS3と.NET4.0を使用しています。誰かが以前にこれに遭遇したことがありますか、またはこれが機能するためにTLFテキストが必要な理由を知っていますか?

4

1 に答える 1

1

これは、TLF テキストが実行前に SWF 全体を強制的にロードするために発生することがわかりました。TLF テキストがない場合、SWF をストリーミングしようとするため、明らかに ExternalCommunication が中断されます。

プリロードを強制する簡単な方法を知っている人はいますか? この時点で唯一有効な解決策は、1 つの SWF を別の SWF にプリロードすることです。

于 2010-06-15T15:28:59.973 に答える