マウスイベントの続きということで、遅ればせながら SimpleButton クラス (livedocs@lab) の説明です。
SimpleButton クラス
SimpleButton は InteractiveObject のサブクラスで、マウスの操作に応じてボタンらしく振舞うことができます。 Flash オーサリングツールでボタンシンボルを作成すると4つのフレームができますが、SimpleButton にもそれぞれのフレームに対応したプロパティが存在します。
public upState : DisplayObject // アップ(通常)の状態の表示オブジェクト public overState : DisplayObject //(マウス)オーバーの状態の表示オブジェクト public downState : DisplayObject //(マウス)ダウンの状態の表示オブジェクト public hitTestState : DisplayObject // ヒットテスト用のオブジェクト
以上の4つのプロパティに対応するマウス操作の状態それぞれに対して、意図された表示を実現する DisplayObject を設定するのが SimpleButton の基本的な使用方法です。
var myButton:SimpleButton = new SimpleButton(); // 各ステート用のオブジェクトを作成(今回は一つの Shape を共有) var stateShape:Shape = new Shape(); stateShape.graphics.lineStyle(2, 0x202020); stateShape.graphics.beginFill(0xFF0000); stateShape.graphics.drawRect(10, 10, 50, 50); // ボタンオブジェクトのプロパティを設定 myButton.upState = stateShape; myButton.downState = stateShape; myButton.overState = stateShape; myButton.hitTestState = stateShape;
SimpleButton にはその他に以下のプロパティがあります。
public trackAsMenu : Boolean // メニューのような使い方をするか public enabled : Boolean // ボタンを有効にするか public useHandCursor : Boolean // カーソルの形状を手の形にするか
trackAsMenu は他の場所でマウスが押された場合でも click イベントを受け取りたい場合に使用します。通常 click イベントは同一オブジェクト上でマウスを押す/放すという行為をしないとディスパッチされませんが、trackAsMenu を true にしておくと、他のオブジェクト上でマウスを押してそのまま移動してある SimpleButton オブジェクト上でマウスを放した場合にも、その SimpleButton オブジェクトに click イベントがディスパッチされます。メニューを作るときに使いそうな機能ですね。
enabled プロパティはボタンの有効/無効を切り替えます。enabled を false に設定すると、実際マウスを操作しても見た目上は反応しなくなります。ただし、イベントはディスパッチされるようです。
useHandCursor プロパティはデフォルトが true です。通常は特に気にする必要はなさそうです。
コメントする