読者です 読者をやめる 読者になる 読者になる

HTMLベースのAdobe AIRでF5を押したときにリロード

気まぐれでAdobe AIRはじめました。どはいっても、今更ActionScriptを覚える気は毛頭ないので、HTMLでプログラミングしてます。そもそも、Moonlightがもっとまともに動いてくれたらAIRでなくてSilverlightでやってたんですが。。。

で、本題。

adlを使ってAIRアプリを開発するのはいいんだけど、プログラムを修正するたびに「アプリを終了→adlでアプリ起動」を繰り返すのはだるいので、とりあえずF5でリロードするようにしてみました。

// F5キーでリロード
document.addEventListener('keydown', function (e) {
    if (e.keyCode == runtime.flash.ui.Keyboard.F5) {
        // alert('reload!');
        htmlLoader.reload();
    }
});

はじめはSocketでやろうかと思ったんですが、実装が面倒なのでキーイベントを拾うことにしました。あとはエディタでファイルが保存されたら自動でリロードされるようにする感じですね。手抜きするとAutoHotKeyあたりを使うことになる感じかなぁ。

追記

HTMLファイル自身が自分のファイル更新時間を監視するようにしてみた。ただ、これだとJSファイルの更新には対応できないので、どうしようかなぁ。

// 現在実行中のファイルが更新されていたらリロード
setInterval((function () {
    const file = new runtime.flash.filesystem.File(location.href);
    var time = file.modificationDate;
    return function () {
        if (file.modificationDate > time) {
            htmlLoader.reload();
        }
    };
})(), 1000);