Flex

EmacsでFlexやるための環境設定

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

Emacsのactionscript用設定はこっち
yasnippetのactionscript-modeはactionscript-mode(yasnippet)

rascut

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"

log.as

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のコンソール欄に表示されるようになります。

Trace Log

mm.cfgというファイルを作る。

mm.cfg作成場所

macの場所が変更された模様

OS ファイルの作成場所
Mac OS X /Library/Application Support/Macromedia /Users/username
Linux /home/username
WindowsXP C:\Documents and Settings \ username
Windows Vista C:\Users\username

mm.cfgプロパティ一覧

プロパティ 説明
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

AIR

Red5

programing/flex.txt · 最終更新: 2010/04/09 03:06 by eiji