海!まっくろ!ななっくるです。
由比ガ浜に来る方はぜひbowls 海の家に足を運んでくださーい!

久しぶりにLocalConnection使いました。Flash同士の通信ができるので便利ですよね。で、その時の注意点?です。

LocalConnectionつなげる場合はそれぞれidをわたさないといけませんよね。で、その同じidのもが2つ開いていると
ArgumentError: Error #2082: このオブジェクトは既に接続されているため、接続できません。
とエラーがでちゃいます。
IEとFFで同じページをひらいていたり、タブで同じページを2つ以上ひらいていると起こります。

それを回避するには。
JSでTimeStampを取得してもらって、Flashvarsで値をもらって、送信、受信ともにidにつけて開きます。
そーすれば、同じものを2つ開いても、時間でidがかわるから大丈夫なんですね!
受信側はこんな感じ。

private var _conn:LocalConnection;
....
_conn = new LocalConnection();
_conn.client = this;
_conn.connect("myConnecgt" + timeStamp);

Flash内で時間取得してつければいいじゃん!と一瞬思いますが、微妙に開くタイミングがずれたら、同じ時間にならないから駄目なんですよねー。

あと LocalConnection は必ずメンバ変数にしとかないといけないという事。ローカル変数にしちゃうとつながりませぬ。ご注意を。

HTML5飯