Flex Builderだとなんもしなくていいからつまんない。なのでEmacsとrascutたすlog.asの設定。
Flex Builder使っててもrascut、log.asを使うととっても便利。
flexだけじゃなくAIRとかactionscriptやるときの環境でげす。
さらにyasnippet用のactionscript-modeも付け足します。
yasnippetを入れると、例えばforを打ってtabを押すと
for [tab] ↓ for(var i:int = 0; i < elements.length; i++){ var x:Object = elements[i]; }
といっきに補完してくれちゃう機能です。C-oの動的略語展開と同じキーバインドにしておくととっても便利です。
Emacsのactionscript用設定はこっち
yasnippetのactionscript-modeはactionscript-mode(yasnippet)
rascutはファイル修正したら自動コンパイル、ブラウザリロードまで一気にやってくれたりな便利機能いっぱいコマンドです。
これがあればBuilderいらず。
gem install rascut
だけ。
.zshrcとか.bashrcに
export _JAVA_OPTIONS='-Duser.language=en'
(追記
rascutが0.21になってたのでアップデートしたら何もしなくても問題なくなりました。
なのでここから下の文はいらないかもしれません。
サーバモードで起動できない場合は /Library/Ruby/Gems/1.8/gems/rascut-0.1.3/lib/rascut/httpd.rbの27行目あたりの portsでインストールしているなら/opt/local/lib/ruby/gems/1.8/gems/rascut-0.1.3/lib/rascut/httpd.rbの
@path = env["PATH_INFO"] == '/' ? @root : F.join(@root, env['PATH_INFO'])
を
@path = env["PATH_INFO"].empty? || env["PATH_INFO"] == '/' ? @root : F.join(@root, env['PATH_INFO'])
に修正
さらにrascut0.1.3はrackのバージョンが0.9.1だとNameError at /js/swfobject.jsとか uninitialized constant Rascut::Httpd::FileOnly::MIME_TYPESがでて動かないので
$ sudo gem install -v 0.4.0 rack $ sudo gem uninstall -v 0.9.1 rack
と修正。
note.xさんのところによると最新版のrascutを下のようにインストールすると rackの最新版でも解決できるらしいです。
$ sudo gem install rubygems-update $ sudo gem update --system $ gem sources -a http://gems.github.com $ sudo gem install hotchpotch-rascut
が、自分の環境じゃそれでもだめでしたので結局rasct0.1.3を使ってます。 なんででしょうか。。。
下の例は
srcディレクトリにあるmain.mxmlを (src/main.mxml)
サーバモードで (-s)
親ディレクトリにあるimageフォルダを/imgフォルダとして、(-m ”../image=img”)
デバックモードで (-c “debug=true”)
現在のカレントディレクトリのdebugディレクトリにmain.swfを掃き出す設定。(output=./bin-debug)
rascut src/main.mxml -s -m "../image=img" -c "-debug=true -output=debug/main.swf"
firebugにtraceみたいなものを掃き出すlog関数を使えるようになる。 上のrascutとあわせると、とってもとっても便利に。
修正保存したら、再コンパイル → ブラウザリロード → firebugのコンソールにlog掃き出し。
という一連の動作を自動でやってくれちゃっています。すばらしき。
ASでどこからでもlog();からlog.asのソースコードをとってきて適当なところに置いて flex_sdkのframeworks/flex-config.xmlに
<flex-config> ...略 <source-path> <path-element>log.asを置いてあるフォルダのパス(例 /usr/local/libs)</path-element> </source-path> </flex-config>
それであとはlog関数をtraceと同じように使うとfirebugのコンソール欄に表示されるようになります。
mm.cfgというファイルを作る。
macの場所が変更された模様
OS | ファイルの作成場所 |
---|---|
Mac OS X | |
Linux | /home/username |
WindowsXP | C:\Documents and Settings \ username |
Windows Vista | C:\Users\username |
プロパティ | 説明 |
---|---|
ErrorReportingEnable | エラーメッセージの有効化 (1:0) :default 0 |
MaxWarnings | ログの最大数 :default 100 |
TraceOutputFileEnable | トレースログの有効化 (1:0) :default 0 |
TraceoutputFileName | ログファイルの場所 Macではdirectoryを:で区切る Flash Player 9 Update以降では無効 |
Flash Player 9 Update 以降ではログファイルの場所は下記に固定される。
OS | ログファイルの場所 |
---|---|
Mac OS X | ~/Library/Preferences/Macromedia/Flash Player/logs/ |
Linux | ~/.macromedia/Flash_Player/Logs/ |
Win XP | C:\Documents and Setteings\username\Application Data\Macromedia\Flash Player\Logs |
Win Vista | C:\Users\username\AppData\Roaming\Macromedia\Flash Player\Logs |
【例】 macでトレースログとエラーレポートを有効にしたmm.cfgファイルを作る場合
$ cd ~ $ echo ErrorReportingEnable=1 > mm.cfg $ echo TraceOutputFileEnable=1 >> mm.cfg
でFlex Builderの場合はBuilderのコンソールに、じゃなければflashlog.txtにtraceの値がはきだされる.
毎回log見るときにフォルダの場所忘れるのでリンク張っとく。
$ cd ~/Library/Logs $ ln -s ~/Library/Preferences/Macromedia/Flash\ Player/Logs/flashlog.txt .
あとはflexやるときにtailとかでてきとうに。
$ tail -f ~/library/Logs/flashlog.txt