ActionScriptを始めてみる

wonderfl build flash onlineActionScriptを書いてみたくなったので、勉強してみようと思いつつも、やっぱりWeb上だけでなく自分のローカル環境でも開発できた方が何かと便利かな?と思って開発環境を整えてみた。

SDK

やっぱり無償で使えるモノ、ということでここから
第1回 無料でFlash作りに挑戦!Flex 3 SDKを導入してみよう:プログラマのためのFlash遊び方|gihyo.jp … 技術評論社
以下のページからFlex SDKをダウンロード。
無償のオープンソースフレームワーク | Adobe Flex
適当なところに展開してパスを通す。
"Hello world!"を書いてみる

package {
    import flash.display.Sprite;
    import flash.text.*;

    public class Hoge extends Sprite {
        public function Hoge() {
            // write as3 code here..
            var tf:TextField = new TextField();
            tf.text = "Hello World!!";
            addChild(tf);
        }
    }
}

よくわかってないけど、こんなカンジ?

$ mxmlc Hoge.as
設定ファイル "/Developer/SDKs/flex/frameworks/flex-config.xml" をロードしています
/Users/sugyan/codes/lang/as/hoge/Hoge.swf (624 bytes)

なんか出来たっぽい。けっこう時間かかるのね…

EmacsActionScriptを書くために

標準では入っていないようだけど、当然actionscript-mode.elというものが存在する。
http://blog.pettomato.com/?p=22
ここからダウンロードして、Emacsのloadパスを通す。イイカンジで色付けしたりしてくれるっぽい。細かい設定はあとで見てみよう

rascutというのがイケてるらしい

ファイルの変更を監視して自動コンパイルしてくれて、ブラウザをリロードしてくれるとか。
rubyで動いているらしい。下記を参考にgemを使ってインストールしてみる。
ActionScript やるなら入れとけ。rascut 導入と使い方。 - てっく煮ブログ

$ sudo gem install rascut --include-dependencies

0.2.1というのが入った。環境変数を変更するとかのパッチは必要なく動いた。


使ってみる

$ rascut Hoge.as
[01/02 02:41:48] Compile Start
[01/02 02:41:49] Found update file(s)["./Hoge.as"]
[01/02 02:41:50]  fcsh: Assigned 1 as the compile target id
Loading configuration file /Developer/SDKs/flex/frameworks/flex-config.xml
/Users/sugyan/codes/lang/as/hoge/Hoge.swf (625 bytes)

[01/02 02:42:05] Found update file(s)["./Hoge.as"]
[01/02 02:42:05] Compile Start
[01/02 02:42:05]  Loading configuration file /Developer/SDKs/flex/frameworks/flex-config.xml
Recompile: /Users/sugyan/codes/lang/as/hoge/Hoge.as
Reason: The source file or one of the included files has been updated.
Files changed: 1 Files affected: 0
/Users/sugyan/codes/lang/as/hoge/Hoge.swf (622 bytes)

ファイル変更する度にコンパイルし直してくれるっぽい。


サーバーモード
rascutの"-s"オプションを使うとブラウザで自動リロードまでしてくれるそうで。

$ rascut -s Hoge.as
[BUG] cross-thread violation on rb_gc()
ruby 1.8.6 (2008-08-11) [universal-darwin9.0]

zsh: abort      rascut -s Hoge.as
$ rascut -vs Hoge.as
[01/02 02:45:24] config{:observe_files=>["."], :ext=>["as", "css", "mxml"], :fcsh_cmd=>"fcsh", :logger=>#<Rascut::Logger:0x56cdf4 @progname=nil, @logdev=#<Logger::LogDevice:0x56cda4 @dev=#<IO:0x2ddd4>, @shift_size=nil, @shift_age=nil, @filename=nil, @mutex=#<Logger::LogDevice::LogDeviceMutex:0x56cd7c @mon_entering_queue=[], @mon_count=0, @mon_owner=nil, @mon_waiting_queue=[]>>, @level=0, @formatter=nil, @default_formatter=#<Logger::Formatter:0x56cdcc @datetime_format=nil>>, :interval=>1, :compile_config=>nil, :file_observing=>true, :server=>true}
[BUG] cross-thread violation on rb_gc()
ruby 1.8.6 (2008-08-11) [universal-darwin9.0]

zsh: abort      rascut -vs Hoge.as

んんん…よくわからないけどportsで入れたrubyがthreadまわりでうまく動かない?
プリインストールされてるrubyの方だと大丈夫なようなのでこれで凌いでみる

$ /usr/bin/ruby /opt/local/bin/rascut -s Hoge.as


これで動いているっぽい!


とりあえず今日はここまで。

宣伝

これから色々なコードを弄って勉強したいので、ビギナーの僕が楽しんで勉強できるコードを作って下さい!
はじめてのActionScript |nengafl |争奪10万円 FORK合戦!