プロが教える店舗&オフィスのセキュリティ対策術

adobe flashアクションスクリプト内の優先順位について。

こんにちは。
まだflashをあたり始めて1~2週間ほどしかたっておらず、初歩的で
意味の分からない質問かもしれませんが、教えて頂けると助かります。

アコーディオンメニューを作りたくて、下記のサイトを参考に作成しました。
http://exyz.cocolog-nifty.com/good_sleep/2007/12 …

質問はこのメニューに、flashからマウスが離れると、メニュー1(パネル1)の状態に戻るように
するにはどうするのが一番良いのか、ということです。
とにかくまだ用語が分かっておらず、結局

panel02_mc.onRollOut = Delegate.create (this,function():Void{
tw (0,300,320,panel01_mc,panel02_mc,panel03_mc);
});

panel03_mc.ononRollOut = Delegate.create (this,function():Void{
tw (0,300,320,panel01_mc,panel02_mc,panel03_mc);
});

を付け加える事で思った通りの動きにはなったのですが、ここで疑問がでてきました。
メニュー2からマウスをメニュー3の位置へ動かすと、
メニュー1の状態に戻る命令と、メニュー3の位置へ動く命令が重なっていると思うのです。
実際には、きちんとメニュー3の位置へ動くのですが、アクションスクリプトには
ムービークリップの重なり順や、アクションスクリプトにおいて上からの順など
命令文に対しての優先順位があるのでしょうか?
なんだか、動くけどもおかしなアクションスクリプトの書き方をしているのではないかと心配で。
本当は、メニュー2かつメニュー3からマウスが離れるとメニュー1の状態に戻るという
命令文をいれたかったのですが...。

A 回答 (1件)

GoogleCodeのFlash Tweenerライブラリは、「列挙したmcをその時点の位置から目的座標にトゥイーンさせる」ものなので、


・panel02からマウスが出た瞬間、panel02とpanel03を、それぞれx=300.320にトゥイーン
(追加されたスクリプトより)
・panel03にマウスが入った瞬間、panel02とpanel03を、それぞれx=10.20にトゥイーン
(もともとのスクリプトより)
が連続で実行されます。

つまり、いったん右へ行ったものがまた左へ行っています。
追加されたスクリプトは不要ということです。
この例では、Flash領域全面をpanel01~03が占めているので、「すべてのパネルからマウスが離れる」イベントは検知できません。

やるならば、stageオブジェクトのEvent.MOUSE_LEAVEを使わねばいけませんね。
ただしActionScript3です(おっと
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!