Vim で .as ファイルを保存時に、Flash をパブリッシュしつつブラウザをリロードするようにしてみた。元ネタは ||_koba_|| さんの発言。ちなみに Windows 限定。
手順
JSFL FileSystem API を入れる
FlashGuru Consulting から MXP をダウンロードして入れる。
ブラウザをリロードする JScript を書く
ブラウザ (Firefox) に F5 キーを送る JScript を書く。元ネタは hail2u.net。
var oShell = WScript.CreateObject("WScript.Shell"); oShell.AppActivate("Mozilla Firefox"); WScript.Sleep(100); oShell.SendKeys("{F5}");
JScript を実行する JSFL を書く
パブリッシュしつつ、先の JScript を実行する JSFL スクリプトを書く。
fl.getDocumentDOM().testMovie(); FileSystem.executeApplication("file:///C:/WINDOWS/system32/wscript.exe", "\"C:/path/to/reloadfx.js\"");
Vim の設定をする
Ctrl-Enter を押したら先の JSFL スクリプトを実行するように設定する。
autocmd FileType actionscript nnoremap <buffer> <C-CR> :!start "C:/Program Files/Adobe/Adobe Flash CS3/flash.exe" "C:/path/to/publish.jsfl"<CR>
FlashDevelop の場合
パブリッシュツールに FlashDevelop を使う際は、FlashDevelop に F5 キーを送る JScript を合わせて書けばよい。……はずだが、それだと FlashDevelop のパブリッシュと同時にブラウザがリロードしてしまった。パブリッシュ完了を感知する必要があるようだ。要調査。