2

Adobe AIRを使用してWindows用のスクリーンセーバーを作成することは技術的に可能ですか?

4

2 に答える 2

3

回避策は、Windowsフォームexe内で.swfをホストすることです。私は現在、C#/。Net4.0でこれを行っています。まず、スクリーンセーバーとして動作するように.exeを構成する必要があります。完了したら、.exeの名前を.scrに変更する必要があります。Windowsフォーム内に、Flash Active Xオブジェクトを埋め込んでから、Windowsフォームをフチなしなどに設定する必要があります。

必要に応じて、.swfはfscommand呼び出しを介して.scrと通信できます。たとえば、.swf内でmouseMoveイベントをリッスンし、fsコマンドを使用して.scrに閉じるように指示します。

.swfファイルをInstantStormと呼ばれるスクリーンセーバーに変換する無料のユーティリティがありますが、私は個人的にWindowsフォーム方式を好みます。

フラッシュオブジェクトの埋め込み

スクリーンセーバーへのWindowsフォーム

于 2012-11-30T23:31:25.867 に答える
2

はい、そうです。

できることは、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;
                }
            }
    }
于 2013-11-27T22:00:37.867 に答える