Adobe AIRを使用してWindows用のスクリーンセーバーを作成することは技術的に可能ですか?
2 に答える
回避策は、Windowsフォームexe内で.swfをホストすることです。私は現在、C#/。Net4.0でこれを行っています。まず、スクリーンセーバーとして動作するように.exeを構成する必要があります。完了したら、.exeの名前を.scrに変更する必要があります。Windowsフォーム内に、Flash Active Xオブジェクトを埋め込んでから、Windowsフォームをフチなしなどに設定する必要があります。
必要に応じて、.swfはfscommand呼び出しを介して.scrと通信できます。たとえば、.swf内でmouseMoveイベントをリッスンし、fsコマンドを使用して.scrに閉じるように指示します。
.swfファイルをInstantStormと呼ばれるスクリーンセーバーに変換する無料のユーティリティがありますが、私は個人的にWindowsフォーム方式を好みます。
はい、そうです。
できることは、AIRプロジェクトを-captive-runtimeまたは-targetバンドルでコンパイルすることです(.airファイルではなくスタンドアロンの.exeにします)。
Windowsの場合は、.exeの名前を.scrに変更し、右クリックして[インストール]または[テスト]を選択します。
構成モードとプレビューモード用に設定する場合は、アプリケーションの呼び出しイベントをリッスンできます。
//put this in your app main constructor
NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, invokEventHandler, false, 0, true);
protected function invokEventHandler(e:InvokeEvent):void {
//you don't actually have to loop as it will always be the first argument
for each(var a:String in e.arguments) {
//p - Show the screensaver in the screensaver selection dialog box
if (a.indexOf("/p")) {
//do something different for preview mode
break;
}
//s - Show the screensaver full-screen
if (a.indexOf("/s")) {
//the main full screen mode
break;
}
//c - Show the screensaver configuration dialog box
if (a.indexOf("/c")) {
//show a configuration window
break;
}
}
}