« PHPのデザインパターン | メイン | うーむ。 »

mtascでv2コンポーネントを使用

どうやってやるのか前々から気になってたので調べてみました。
mtascの公式サイトに出てたのですが、結果として標準Flash IDEが必要な模様。mtasc単体で完結できないみたいなので残念。ってちょっと考えたら当たり前か。。

まずはエディタを開いて以下のようなasファイルを用意。

import mx.controls.Button;
class mxTest{
	function mxTest(mc:MovieClip){
		mc.createClassObject(Button,"btnTest",1,{
		label:"テスト", 
		_width:100, 
		_height:25,
		_x:30,
		_y:30
		});
	}
}

次にFlashI DEからtest.flaを作成1フレーム目に

m = new mxTest(this);
this.stop();

と、記述し、ライブラリに ボタン・コンポーネントを追加。パブリッシュ。

% mtasc -cp (クラスパス※) -mx -swf test.swf mxTest.as

※うちの環境は以下の通りでした。
/Applications/Macromedia Flash MX 2004/First Run/Classes/

で、できたtest.swfがmxtest.asを反映された物。
あとは、myTest.asを書き直す事でswfに反映させる事ができる。

次のコードはボタンを押した後、アラートウィンドウを表示させるようにしたもの。flaファイルのライブラリにAlertコンポーネントを追加してパブリッシュする必要がある。

import mx.controls.Button;
import mx.controls.Alert;
import mx.utils.Delegate;
class mxTest{
	function mxTest(mc:MovieClip){
		mc.createClassObject(Button,"btnTest",1,{
		label:"テスト", 
		_width:100, 
		_height:25,
		_x:30,
		_y:30
		});
		mc.btnTest.addEventListener("click", Delegate.create(this, btn_onClick));
	}
	function btn_onClick(eventObj:Object) {
		Alert.show("you "+eventObj.type+"ed "+eventObj.target,"title");
	}
}
% mtasc -cp (クラスパス※) -mx -swf test.swf mxTest.as

うーむ。めんどい。

トラックバック

このエントリーのトラックバックURL:
http://www.minfish.jp/blog/mt-tb.cgi/79