6月 11, 2009
AS3のボタンでのつまづき
さっそく、つまった。ボタンで。
AS2.0と同じ
_up、_over、_downでラベルを設定すれば、
ボタンシンボルと同じ挙動になる。
が、「押したら、_downに止まったままでボタン機能を停止する」
とオイラがよくやるが、どうしても_downに止まらず_upに戻っちゃう。
btn_1.addEventListener( MouseEvent.CLICK , SeyYes ); btn_1.buttonMode = true; btn_1.mouseChildren = false; function SeyYes( e:MouseEvent ):void{ trace("Yes"); btn_1.mouseEnabled = false; btn_1.gotoAndStop("_down"); }
だめだ……と小一時間戦って
これで行けた。
btn_1.addEventListener( MouseEvent.MOUSE_DOWN , SeyYes ); btn_1.buttonMode = true; btn_1.mouseChildren = false; function SeyYes( e:MouseEvent ):void{ btn_1.mouseEnabled = false; btn_1.buttonMode = false; }
・MouseEvent.CLICKじゃなくてMouseEvent.MOUSE_DOWNで
・gotoAndStopじゃなくてbuttonModeでボタン機能を止める。
・カーソルは反応しなくなるが、登録したイベントはまだ有効なので、mouseEnabledで確実に。
[SWF]http://www.renowan.com/blog/flash/20090610_btn.swf, 250, 180[/SWF]