ActionScriptでボタンを作るやり方は色々あるようで、MovieClipを利用しButtonMode=trueにするやり方や、fl.controlsを使ってしまうやり方。
そして、SimpleButtonを使うやり方。
var sb:SimpleButton = new SimpleButton(); var b1:Sprite = new Sprite(); b1.graphics.beginFill(0x009966,1); b1.graphics.drawRect(0,0,100,25); b1.graphics.endFill(); //-- 中略 -- sb.upState = b1; sb.downState = b2; sb.overState = b2; sb.hitTestState = b2;
リファレンスに、
SimpleButton(upState:DisplayObject = null, overState:DisplayObject = null, downState:DisplayObject = null, hitTestState:DisplayObject = null)
って、書かれていたものだから、upState以外は指定しなくっても大丈夫なのかと思ってたらそうではなかった。
表示はされるんだが、ボタンとして機能してない。
どういうことなんだ!
って、昨日から悩んでたけど、今日分かったことは、「後からでもなんでも、とりあえず指定してやらにゃぁならん」ということだった。
ということで、up,down,over,hitTest すべてのStateプロパティにSpriteをあてがってやると、ちゃんとボタンとして機能してくれた。
かる~いワナだよ、これは。