FLASHチーム
ActionScript3.0
マキータです。
FlashもActionScript3.0が出てきて、そろそろ本も出始めてきていますね。
いまさらですがActionScript3.0について書いてみます。
2.0と3.0、何が違うのかといえば、結構別物なんですが、例えばボタンが押されたらメッセージを出すという処理を作るとします。
これを2.0版ではこういう記述になります。
ボタン.onRelease = function(){
trace("hello world!!")
}
もしくは・・・
ボタン.onRelease = Delegate.create(this, buttonReleaseEvent);
function buttonReleaseEvent(){
trace("hello world!!")
}
と記述します。
ま、それはさておき。
では3.0ではどうなるんだろう?といった場合以下のように記述します。
function playMovie(event:MouseEvent):void {
trace("hello world!!")
}
ボタン.addEventListener(MouseEvent.CLICK, playMovie);
ボタン.buttonMode = true;
よくみるとボタンのイベントハンドラを作って、クリックされたら関数を呼び出すだけ?と言ってしまえば、文言こそちがえど上の2番目のものに近いといわれてしまいます。
それはスクリプトの基本なので変わりはありません。
ただ違うのはキーになるこの一行。
ボタン.buttonMode = true;
これはインスタンスオブジェクトをボタン化するというものなんです。
そうなるとこの一行が無ければ普通のムービークリップをクリックするだけのものなんですね。
2.0では自動的にボタンとみなしてくれているものが、3.0では既にマニュアルとして指定しなければならないものなのです。
処理は同じなのに、ボタン化とそうでないものはどう違うの?と思ってしまうかもしれません。
例えばボタンを押すという表現方法ではなく、ただ画面をクリックされたから行なう処理というのもあると思います。
ポップアップとかね。
通常、ボタンとそうでないものの違いはカーソルの変化にあります。わかりやすいところで指のカタチになりますよね。
クリックで起こしたいアクションはあるけれど、ボタンカーソルへは変化させたくない、つまりボタンではないからという場合は一度ボタンを作成してから、ボタンのロールオーバー時にマウスカーソルを指からノーマルへ変化しなおしているわけです。
トラックバック(0)
このブログ記事を参照しているブログ一覧: ActionScript3.0
このブログ記事に対するトラックバックURL: http://blog.creativehope.co.jp/mt/mt-tb.cgi/28