Starlingにもボタンクラスがあるのだが、機能的にはFeathersの方が充実しているので実際にはこちらがお勧め。
最低限以下のコードで動く。
var btn:Button = new Button(); btn.addEventListener(Event.TRIGGERED, onTapHandler); btn.defaultSkin = new Image(assets.getTexture(BTN_IMG_NAME)); btn.defaultIcon = new Image(assets.getTexture(BTN_ICON_NAME)); addChild(btn);
function onTapHandler(e:Event):void{ trace("tap!"); }
アイコンの代わりにテキストを指定することも可能。
でもこれだと押したとき、マウスが乗ったときが分からないので、たとえば
btn.useHandCursor = true;//マウスオーバーでハンドカーソル btn.scaleWhenDown = 1.1;//押したときに1.1倍に btn.scaleWhenHovering = 1.03;//マウスオーバーで1.03倍に
などと指定する。
他にもマウスオーバー、使用不可のボタンの画像自体を変えたい場合は、
hoverIcon hoverSkin disabledSkin disabledIcon downSkin downIcon
などのプロパティに画像を指定すると良い。アイコンの細かな位置調整は
iconOffsetX iconOffsetY
というパラメーターでポイント単位で微調整可能。
モバイルだと画像を多く用意するとメモリを圧迫するので、downSkinを使うよりスケールで対応するのが便利。Imageのcolorプロパティを使ったり半透明画像を重ねたりする方法もある。