パブリッシュ時にブラウザをリロードする

Vim で .as ファイルを保存時に、Flash をパブリッシュしつつブラウザをリロードするようにしてみた。元ネタは ||_koba_|| さんの発言。ちなみに Windows 限定。

手順

  1. JSFL FileSystem API を入れる
  2. ブラウザをリロードする JScript を書く
  3. JScript を実行する JSFL を書く
  4. Vim の設定をする

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 のパブリッシュと同時にブラウザがリロードしてしまった。パブリッシュ完了を感知する必要があるようだ。要調査。