mtasc で始める ActionScript2 プログラミング
mtasc はフリーの AS2 コンパイラです。chumby のガジェットを作る為に試しに使ってみる事にしてみました。
ちなみに思いっきり cygwin 上で使う事を想定していますw
ダウンロードとインストール
download から各OS用の実行バイナリを取ってきて適当な場所で展開して下さい。
$ cd /usr/local/src $ wget http://www.mtasc.org/zip/mtasc-1.13.zip $ unzip -d /usr/local mtasc-1.13.zip $ cd .. $ ln -s mtasc-1.13 mtasc $ chmod +x mtasc/mtasc.exe
まぁこんな感じで終了。
後は .bashrc などでPATHを通しておきましょう。
export PATH="$PATH:/usr/local/mtasc"
trace と mtasc
mtasc には trace() 関数がデフォルトではついてません。これはきついので何とかしたいんですが、Windows では SOS と言う XMLSocket 用のサーバーを使って trace する事が出来ます。
それを簡単にやってくれるのが、zeroi と言うライブラリです。
ちなみにこの zeroi は下記の物を trace 先に選択出来るようです。
- SOS
- XRay
- LuminicBox
- XTrace
- TextField
XRay はどうしても使う事が出来ず、LuminicBox はダウンロード出来なくて、XTrace は OSX 用の模様なので、結局 SOS を使う事になりました。
SOS のダウンロード、インストール
これはダウンロードした zip をどっかに解凍するだけです。JRE が必要です。
zeroi のインストール
今度は適当な作業パスに移動します。
$ cd /path/to/dir $ wget http://zeroi.googlecode.com/files/zeroi_build.zip $ unzip zeroi_build.zip $ mv as src
リネームはただの好みの問題です。
早速使ってみる。
まずは logger.xml を用意。
<?xml version="1.0" encoding="utf-8"?> <logger level="DEBUG"> <!-- LogLevels are DEBUG, INFO, WARN, ERROR, FATAL, TEMP TEMP is only supported by SOS (sos.powerflasher.com) --> <log target="*" level="DEBUG" /> </logger>
さらに Hello.as を用意。
import org.osflash.zeroi.logging.LoggerConfig; class Hello { function Hello(path :MovieClip) { trace("Constructor start"); path.createTextField("tf", 1, 0, 0, 100, 20); path.tf.border = true; path.tf.text = "Hello World"; trace("Constructor end"); } static function main() { LoggerConfig.init("logger.xml", function(success :Boolean) { if (success) { trace("Loading logger config is success"); var t :Hello = new Hello(_root); } }); } }
んでコンパイル。
$ mtasc -cp src \ -trace org.osflash.zeroi.logging.LoggerClass.log \ src/org/osflash/zeroi/logging/LoggerClass \ src/org/osflash/zeroi/logging/publisher/SOSPublisher.as \ -swf Hello.swf \ -main Hello.as \ -header 200:200:30
とすると Hello.swf が出来るので、ブラウザの窓とか FlashPlayer とかで再生すると。
その前に SOS を起動しておきましょう。
多分セキュリティ絡みで localhost への接続について怒られると思うので、グローバルセキュリティ設定でそのファイルだけ除外するなりしましょう。
あとどうもプレイヤーの設定でグローバル設定の「共通の Flash コンポーネントを〜」ってチェック外すとキャッシュされないので開発時に便利〜みたいな感じになるっぽぃ。合ってるかな。
SEE ALSO
あとでちゃんと見る的リンク集