ActionScript3.0 ボタンが押された時の処理 | 2008-08-25 |
ActionScript3.0 ビジュアル・リファレンス (2008/03/11) トップスタジオ 商品詳細を見る 2.0とは別物だった。 |
CS3が手に入って数週間。
ずっとAS2.0ばっかりやっていましたが、そろそろ3.0も触ろうかと。
そう思って、今日挑戦してみました。
・・・ですが。
あまりの違いに驚きを隠せません。
まだ、3.0にするのは早いのかっ!?
(独学道場より引用)
さて、早速挑戦。
やっぱり、AS使うからには、イベント処理をしたい。
そこで、ボタンが押された時の処理に挑戦。
それが、上記にあるコンテンツです。
矢印を押すと、円が移動します。
・・・記述の仕方がかなり違うので、大変でした。
2.0なら、どうって事ないのに。。。
それでは、ソースです。
function CircleMove( btnNum ) {
if( move_key == true ) {
if( move_dir == "UP" ) {
this.circle_mc.y -= moveNum;
} else if( move_dir == "DOWN" ) {
this.circle_mc.y += moveNum;
} else if( move_dir == "LEFT" ) {
this.circle_mc.x -= moveNum;
} else if( move_dir == "RIGHT" ) {
this.circle_mc.x += moveNum;
}
}
};
function CircleUP( btnNum ) {
move_key = true;
circle_mc.gotoAndStop( "back" );
move_dir = "UP";
};
function CircleDOWN( btnNum ) {
move_key = true;
circle_mc.gotoAndStop( "front" );
move_dir = "DOWN";
};
function CircleLEFT( btnNum ) {
move_key = true;
circle_mc.gotoAndStop( "left" );
move_dir = "LEFT";
};
function CircleRIGHT( btnNum ) {
move_key = true;
circle_mc.gotoAndStop( "right" );
move_dir = "RIGHT";
};
function CircleStop( btnNum ) {
move_key = false;
};
var move_key = false;
var move_dir = "UP";
var moveNum = 5;
this.addEventListener( Event.ENTER_FRAME, CircleMove);
this.up_btn.addEventListener( MouseEvent.MOUSE_DOWN, CircleUP );
this.up_btn.addEventListener( MouseEvent.MOUSE_OUT, CircleStop );
this.up_btn.addEventListener( MouseEvent.MOUSE_UP, CircleStop );
this.down_btn.addEventListener( MouseEvent.MOUSE_DOWN, CircleDOWN );
this.down_btn.addEventListener( MouseEvent.MOUSE_OUT, CircleStop );
this.down_btn.addEventListener( MouseEvent.MOUSE_UP, CircleStop );
this.left_btn.addEventListener( MouseEvent.MOUSE_DOWN, CircleLEFT );
this.left_btn.addEventListener( MouseEvent.MOUSE_OUT, CircleStop );
this.left_btn.addEventListener( MouseEvent.MOUSE_UP, CircleStop );
this.right_btn.addEventListener( MouseEvent.MOUSE_DOWN, CircleRIGHT );
this.right_btn.addEventListener( MouseEvent.MOUSE_OUT, CircleStop );
this.right_btn.addEventListener( MouseEvent.MOUSE_UP, CircleStop );
こんな感じですね。
AS2.0と3.0、どっちが楽ですかね?
慣れてる分、2.0の方が楽な気がしますが。。。
3.0の方が、今後の可能性を感じる事が出来るかも。
・・・あくまで、個人的な意見だけど。
やってる事は、単純。
addEventListener()で呼び出す関数を指定。
呼び出された関数で、処理をするといった具合。
記述は、「インスタンス名.addEventListener( イベント, 関数名 )」でいいみたい。
なお、呼び出された関数で引数を指定しないと、エラーが出る。
インスタンスの情報が送られてくるみたい。
それを受け取る必要があるのだろうか?
まだ良く分かっていないので、分かったらまた載せようと思う。
イベントの記述も、2.0とは大分違ってきている。
この辺も、今後詳しく調べて、特徴を掴みたい。
ただ、とりあえず、動かすくらいなら出来た。
今日はこれくらいで、メモとする。