1

同じ Web ページ上の 2 つの Flash オブジェクト間に双方向の localConnection (LC) をセットアップしようとしています。1 つのオブジェクトは AS2 で、もう 1 つのオブジェクトは AS3 です。

  1. 各 SWF でデータを送受信するために 1 つの LC オブジェクトを使用しています。(これは問題ではありませんよね? 送信用と受信用の 2 つのオブジェクトを使用してみましたが、同じ問題が発生しました)。

それらは両方ともリッスンするように適切に .connect() します。しかし、AS2 SWF から AS3 LC にデータを送信しようとすると、エラーが発生します。これは 95% の確率で発生しますが、うまくいく場合もあるので、LC 名に問題がないことはわかっています (明らかに確認しました)。

場合によっては、1 つまたは 2 つのメッセージが通過し、その後のメッセージが失敗することがあります。

何が原因でしょうか?

多くの AS2 swf が 1 つの AS3 swf に接続できるように、多対 1 の接続マップを作成することを目指しています。それは問題になりますか?

4

3 に答える 3

2

考えられる原因の 1 つは、同じ LC 名に対する複数のリスナーが機能していないように見えることに気付いたことです。つまり、このページを 2 つの異なるタブで開くと、両方の「送信」SWF が機能することがわかりますが、メッセージは最初に開いたタブでのみ受信されます。2 つの SWF しか使用していないと思いますが、両方が同じ LC 名をリッスンしようとしている場合は、おそらく似たようなものを見ているのでしょうか?

また、目に見えないページ要素の内側にある SWF や、画面外にある SWF については、何らかの形で LC が無効になっていると思います。そのようなことをしていますか?

于 2008-11-10T03:26:15.750 に答える
0

私はついに問題の原因を突き止めました。

AS3では同じLCオブジェクトを使用してイベントの送受信を行うことができますが、AS2でこれを行うと、しばらくするとエラーが発生するようです(おそらく受信後に送信しようとした場合)。

于 2008-11-12T00:51:41.397 に答える
0

たまたま、2 つの異なるブラウザーで同じページを開いていることはありませんか? LocalConnection はブラウザー間で接続するため、その問題が発生する可能性があります。

通常、LC 名が一意であることを確認するために行うことは、サーバー上でランダムな LC 名を生成し、FlashVars を使用してその LC 名を両方の swfs に渡すことです。

また、swf のロード順序と関係がある場合もあります。接続を作成している swf が接続を試みた後、接続をリッスンしている swf がロードされている可能性があります。次に、残りの 5% の時間で、swf が正しい順序でロードされます。エラーが発生した場合は、もう一度接続してみてください。

于 2008-11-11T12:55:59.000 に答える