FlashCS3によるAIRアプリ作成(Windowのカスタマイズ)
2008 年 10 月 3 日 by fujii前回から、かなり間があいてしまいましたm(__)m
今回は、AIRアプリケーションのWindowをカスタマイズしてみたいと思います。
前回作成した「HellowWorld」アプリを元にカスタマイズを進めたいと思います。
通常AIRアプリはOSに合わせてWindowが表示されます。
これでも問題はないのですが、せっかくのAIRアプリなのでこのWindow部分もオリジナルにしたいと思います。
- 「タイトルバー」、「閉じるボタン」、「最大化ボタン」、「最小化ボタン」の画像を用意し、ライブラリーに登録します。
(※「タイトルバー」は「ムービークリップ」として、残りのボタン類は「ボタン」とします。)
用意した「タイトルバー」、「閉じるボタン」などをステージ上に配置します。
※インスタンス名は下記の様に設定しました。
・「タイトルバー」・・・「titlebar_mc」
・「閉じるボタン」・・・「close_btn」
・「最大化ボタン」・・・「maximize_btn」
・「最小化ボタン」・・・「minimize_btn」 - 次に、「タイトルバー」「各ボタン」の動作させるスクリプトを作成します。
スクリプトは下記の内容を実装します。
・「タイトルバー」ドラッグ時、「Window」の移動
・「閉じるボタン」押下時、AIRアプリの終了
・「最大化ボタン」押下時、「Window」の最大化
・「最小化ボタン」押下時、「Window」の最小化 - 「ファイル」-「新規」を選択し、「ActionScript(AS)ファイル」を選択します。
ASファイルに以下のスクリプトを記述し、flaファイルと同階層に「Main.as」のファイル名で保存します。
(Main.as)
[ActionScript]
package {
import flash.display.*;
import flash.events.*;
public class Main extends Sprite
{
public function Main() {
titlebar_mc.addEventListener(MouseEvent.MOUSE_DOWN, moveWindow);
close_btn.addEventListener(MouseEvent.CLICK, closeWindow);
maximize_btn.addEventListener(MouseEvent.CLICK, maximizeWindow);
minimize_btn.addEventListener(MouseEvent.CLICK, minimizeWindow);
}
/**
* ウィンドウの移動
*/
private function moveWindow(evt:Event) {
stage.nativeWindow.startMove();
}
/**
* ウィンドウを閉じる
*/
private function closeWindow(evt:Event) {
stage.nativeWindow.close();
}
/**
* ウィンドウの最大化
*/
private function maximizeWindow(evt:Event) {
stage.nativeWindow.maximize();
}
/**
* ウィンドウの最小化
*/
private function minimizeWindow(evt:Event) {
stage.nativeWindow.minimize();
}
}
}
[/ActionScript] - ドキュメントクラスに、先ほど作成したスクリプトを指定します。
ドキュメントのプロパティを表示し、「ドキュメントクラス」に「Main」と記述します。
AIRアプリが起動した際、ここで指定したクラスのインスタンスが生成されます。 - ただこのままでは、各OSのWindowが表示されてしまいます。
「コマンド」-「AIR-アプリケーションとインストーラの設定」を選択し、「ウィンドウスタイル」を「カスタムクローム(不透明)」に設定します。
- 動作確認の為、「制御」-「ムービープレビュー」を選択します。
このように、スクリプトも数行書くだけでオリジナルのWindowを作成することができます。
ちなみに、「ウィンドウスタイル」を「カスタムクローム(透明)」に設定し、確認してみてください。
「カスタムクローム(不透明)」を選択していた場合は、ステージ上の背景色が表示されていたと思いますが、「カスタムクローム(透明)」を選択した場合、ステージ上の背景色さえ表示されなくなります。
以上で、オリジナルのWindowの作成方法の紹介を終わります。
みなさんもこれを利用してオリジナルなAIRアプリを作成してみてはどうでしょう。