デスクトップ・アプリケーションのバージョンアップ

この記事をフルスクリーンで見るフルスクリーンモードを終了するには Esc キーを押してください。または、ココをクリックしてください。

Adobe® AIR® デスクトップ・アプリケーションをアップロードしたものの作った本人は使ってませんでした。
というのも、同じ機能のブログパーツを使っている当ブログのインデックスページを常に開いているので、『特にデスクトップにアプリを置かなくてもいいかなぁ』という単純な理由。
また、このアプリは当サイトのサイドバー用に作った時計を Google ガジェットに、その後 Adobe AIR 用に作り直しただけということもあって、製作時のチェックくらいしかしていませんでした。

でも、デスクトップ・アプリケーションとして、ちょっと気になるところがあったのも事実。
それは何かというと『ウインドウポジション』です。
特にスクリプトで設定していませんので当たり前なのですが、今までは毎回起動時にモニター中央に表示していました。
これでは、このアプリを起動項目などに設定した場合、毎回モニター中央から所定の位置に動かさなければいけません。
面倒くさいですよね。
やはり、ウインドウを動かせるデスクトップ・アプリケーションであれば、終了時にウインドウの位置を記憶し、次回起動時には前回終了時のウインドウ位置で起動した方がいいと思う。
まぁ、基本中の基本かも知れないですね。

というわけで、前回終了時のウインドウ位置で起動するように変更しました。
これで、使い勝手の良い定位置に置いておけば、アプリを動かさない限り毎回同じ位置で起動してくれます。
めでたし、めでたし… :D

ところで、ウインドウの位置の記憶を “Event.CLOSING” で処理しようと思ったのですが、カスタムクローム(Custom Chrome)を使っていると、”Event.CLOSING” だけではダメなんですね。

Adobe AIR 1.5 * ウィンドウの管理

ウィンドウがシステムクロムを使用している場合は、適切なイベントをリッスンし、イベントのデフォルト動作をキャンセルすることで、ユーザによるウィンドウの操作をキャンセルできます。例えば、ユーザがシステムクロムの閉じるボタンをクリックすると、closing イベントが送出されます。

ウィンドウの外観のカスタマイズ | デベロッパーセンター

Custom Chrome は、NativeWindow オブジェクトの close() メソッドを使用してウィンドウを閉じます。

なので、カスタムクロームのクローズボタンの “addEventListener ” にもウインドウ位置を記憶させる処理をしないといけないのね。
う〜ん、ちょっとだけ悩んでしまった… :-)
かといって、”Event.CLOSING” でも処理をしておかないとメニューやショートカットでアプリを終了した時にウインドウ位置を書き込めないみたい。
つまり、カスタムクロームを使うときは両方記述しないといけないということなんでしょうかね。
何かスマートな方法があるのかな?

まっ、取りあえず動作しているようなので OK としよう。

Adobe® AIR® のデスクトップ・アプリケーションのダウンロードはこちらへどうぞ !!

スポンサーリンク

  • このエントリーをはてなブックマークに追加

フルスクリーンモードを終了するには Esc キーを押してください。または、ココをクリックしてください。