Web Issue(ウェブ イシュー)は、クリエイティブホープの社員が日々の業務で感じた事や培った技術、Web構築のノウハウなどを発信するBlog(ブログ)です。

ページ内を移動するためのリンクです。

Web Issue クリエイティブホープの社員ブログ

Web Issue(ウェブ イシュー)はクリエイティブホープの社員が「Webのプロ」としての視点で語るブログです。Webに関する知識や技術など実務に役立つノウハウから、日々感じている素朴な疑問まで、様々な情報を発信していきます。

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では既にマニュアルとして指定しなければならないものなのです。

 

処理は同じなのに、ボタン化とそうでないものはどう違うの?と思ってしまうかもしれません。
例えばボタンを押すという表現方法ではなく、ただ画面をクリックされたから行なう処理というのもあると思います。
ポップアップとかね。

 

通常、ボタンとそうでないものの違いはカーソルの変化にあります。わかりやすいところで指のカタチになりますよね。
クリックで起こしたいアクションはあるけれど、ボタンカーソルへは変化させたくない、つまりボタンではないからという場合は一度ボタンを作成してから、ボタンのロールオーバー時にマウスカーソルを指からノーマルへ変化しなおしているわけです。

 

2008年4月17日 11:22 | トラックバック(0)
カテゴリ:FLASHチーム

トラックバック(0)

このブログ記事を参照しているブログ一覧: ActionScript3.0
このブログ記事に対するトラックバックURL: http://blog.creativehope.co.jp/mt/mt-tb.cgi/28