SimpleButtonで簡単ボタン
「flash.display.SimpleButton」を使うと簡単にボタンを作成できます。基本的な使い方は次の通り。
- SimpleButtonのインスタンスを作成します。
- 初期状態、押された状態、マウスが乗った状態のUIをそれぞれ指定します。
- あたり判定に使うDisplayObjectを設定します。
- 押された場合の処理をイベントリスナに登録します。
- UIに貼り付ければ完成。
以下のサンプルでは、初期状態、押された状態、マウスが乗った状態の画像をそれぞれ用意してボタンを作成しています。
サンプル:
package { import flash.display.*; import flash.events.*; /** * メインクラス */ public class UseSimpleButton extends Sprite { // 画像リソース [Embed(source="button.gif")] private var button:Class; [Embed(source="button_down.gif")] private var buttonDown:Class; [Embed(source="button_over.gif")] private var buttonOver:Class; public function UseSimpleButton(){ // SimpleButtonのインスタンス var b:SimpleButton = new SimpleButton(); // UIの設定 // 初期状態、押された状態、マウスが乗った状態のUIをそれぞれ指定する。 b.upState = new button(); // 初期状態 b.downState = new buttonDown(); // 押された状態 b.overState = new buttonOver(); // マウスが乗った状態 // あたり判定 // ボタンと同じにする。 b.hitTestState = b.upState; // イベントを登録 b.addEventListener(MouseEvent.CLICK, function(){ trace( "button clicked." ); }); b.x = 10; b.y = 10; this.addChild(b); // 貼り付ける } } }
はまり道
最初、あたり判定に使うDisplayObjectの設定をスルーしていてはまりました。指定しなければupStateのものが使われると勝手に妄想してました。