■Step02 ~自分のことは自分で編~
ソース.
「自分のことは自分でやる」ということは
そのスクリプトの書いてある位置が特定し易くなる.
先の例ではプレーヤーがジャンプするスクリプトの実装が
コントローラーに書かれてしまっている.
/**
* 押された際にキャラクターをジャンプさせる.
*/
this.onPress = function() {
// キャラクターがノーマルの場合のみ処理する
if (_root.mario_mc.status == 'normal') {
// キャラクターをジャンプさせる
_root.mario_mc.gotoAndPlay('jump');
// ジャンプの回数を増やす
_root.count_txt.text = Number(_root.count_txt.text) + 1;
// キャラクターの状態を変更する.
_root.mario_mc.status = 'jump';
}
};
[_root.mario_mc]
/**
* キャラクターのステータスを表す.
*/
var status;
/**
* ジャンプする.
*/
this.jump = function() {
if (this.status == 'normal') {
// キャラクターをジャンプさせる
this.gotoAndPlay('jump');
// ジャンプの回数を増やす
_root.jumpCount_mc.countUp();
// キャラクターの状態を変更する.
this.status = 'jump';
}
};
[_root.controller_mc]
/**
* 押された際にキャラクターをジャンプさせる.
*/
this.onPress = function() {
_root.mario_mc.jump();
};
これで,スクリプトの書く場所がどこにあるかが分かり易くなった.
ただ,これではデザイン(Flash上のデザインやアニメーションのオーサリング)と
スクリプトがIDE上で混在したような形になっている.
macromediaでは1フレーム目にスクリプトを書くことを推奨したスタイル
としている.(この手法に関する良し悪しは置いておいて.)
こうすることによってスクリプトの場所とデザインの場所を分別できる.
んじゃ,1フレーム目にスクリプトを移動するのはどんな方法を使うのか?
それがクラス定義とObject.registerClass()メソッドを使う方法になる.
リスト
■Step00 ~序章~
■Step01 ~とにかく実装編~ (ソース)
■Step02 ~自分のことは自分で編~ (ソース)
■Step03 ~クラス定義とObject.registerClass()~ (ソース)
■Step04 ~MVCを意識して~ (ソース)
■Step05 ~Mediatorパターンを取り入れる~ (ソース)
■Step06 ~AS2.0に書き換える~ (ソース)
trackback for this entry URL:
http://blog.graffiti-web.org/mt/mt-tb.cgi/321
comment is here.