2009年8月15日土曜日

AdobeAIRでGrowl - 自作編

ども。先日as3growlで挫折したaqubiです。
その後、AdobeDeveloperConnection:トーストスタイルのウィンドウの作成という記事を発見。
Growlっぽい画面のことを、トーストスタイルのウィンドウっていうんすか。
そんなキーワードで探していなかったよー。

早速中身を見てみた所、NativeWindowをnewしてゴリゴリ書いている感じ。
WordUp は ActionScript プロジェクトなので、NativeWindow クラスを直接使用しています。Flex プロジェクトの場合は、通常、mx:Window クラスを使用してウィンドウを作成します。その他のほとんどの点では、ここで示す手法を ActionScript プロジェクトと Flex プロジェクトの両方に同様に適用できます。
とあったので、mx:Windowでクリクリやってみました。


こんな感じ。おー我ながらいいんじゃないっすかー。

メインの画面が、systemChromeの画面であっても大丈夫なので、ASlimTimerにも組み込めそうデス。

Growlの表示は、mx:Windowを使っています。
mx:Windowはデフォルトでは、systemChrome="standard" つまり、画面タイトルバーが表示されてしまうので、systemChrome="none" にする。
その他、showGripper,showStatusBar,showTitleBarも、もろもろfalseに。

表示位置は nativeWindow.x, nativeWindow.y で位置を指定します。
スクリーンのサイズを取得するには、Screen.mainScreen.bounds で。

緊急(背景が赤)、重要(背景がオレンジ)のプライオリティの場合は、メッセージをクリックして閉じる。
それ以下のプライオリティ(背景が黒)は、5秒たったら自動的に消える ように作ってます。

表示、閉じるタイミングではGrowlチックにふんわり感を出す為に、Timerでalpha(透明度)をいじってます。

コードは、GitHubにコミットしときました。
http://github.com/aqubi/AdobeAIR-GrowlNotification/

サンプルアプリのAIRパッケージを downloadsに置いてみたので、とりあえず動きを見たい!って人はどーぞ。
• • •