DockIcon について
■DockIcon について
DockIcon クラスは、 OS のシステムアイコンに関する機能がまとまっています。
基本的に、Macintosh で利用可能です。
Windows と Linux の場合は、SystemTrayIcon クラスを使用します。
SystemTrayIcon クラスについては、こちらで解説しています。
■DockIcon に対応しているか調べる
DockIcon をサポートしているか調べるには、NativeApplication.supportsDockIcon プロパティを使用します。
true であれば利用可能です。
DockIcon をサポートしているか調べる
import flash.desktop.NativeApplication;
import flash.text.TextField;
// テキストフィールドを作成
var text_field:TextField = new TextField();
text_field.x = 10;
text_field.y = 10;
text_field.width = stage.stageWidth - 20;
text_field.height = 20;
text_field.border = true;
stage.addChild(text_field);
text_field.text = "DockIcon のサポート:" + NativeApplication.supportsDockIcon;
■DockIcon オブジェクトを取得する
DockIcon オブジェクトを取得するには、NativeApplication クラスの icon プロパティを使用します。
ドックアイコンに対応している場合、DockIcon オブジェクトが格納されています。
ドックアイコンに対応していない場合、「InteractiveIcon クラスから派生している未知のオブジェクト」が格納されている可能性があります。
エラーの原因となるので、必ずサポートしているか調べる必要があります。
DockIcon オブジェクトを取得する
import flash.desktop.NativeApplication;
import flash.desktop.DockIcon;
// ドックアイコンに対応している
if(NativeApplication.supportsDockIcon){
var app:NativeApplication = NativeApplication.nativeApplication;
// DockIcon オブジェクトを取得する
var dock_icon:DockIcon = app.icon as DockIcon;
}
システムアイコンを設定する
■システムアイコンを設定する
システムアイコンを可視表示するには、システムアイコンの設定を行います。
システムアイコンを設定するには、bitmaps プロパティを使用します。
BitmapData オブジェクトを配列に格納して、bitmaps プロパティに渡します。
BitmapData クラスの使い方は、こちらで解説しています。
アイコン用ビットマップは、以下のサイズで用意します。(すべて用意する必要はありません)
・ | 16 * 16 |
・ | 32 * 32 |
・ | 48 * 48 |
・ | 128 * 128 |
・ | 512 * 512 |
配列に格納した BitmapData オブジェクトの中から、最適なサイズのビットマップが、システムアイコンとして表示されます。
システムアイコンを設定する
import flash.desktop.NativeApplication;
import flash.desktop.DockIcon;
import flash.display.BitmapData;
// ドックアイコンに対応している
if(NativeApplication.supportsDockIcon){
var app:NativeApplication = NativeApplication.nativeApplication;
// DockIcon オブジェクトを取得する
var dock_icon:DockIcon = app.icon as DockIcon;
// アイコン用 BitamapData オブジェクトを作成する
var icon_16:BitmapData = new BitmapData( 16, 16 , true , 0xFFFF0000);
var icon_32:BitmapData = new BitmapData( 32, 32 , true , 0xFF00FF00);
var icon_128:BitmapData = new BitmapData(128, 128 , true , 0xFF0000FF);
// システムアイコン用ビットマップを設定する
dock_icon.bitmaps = [icon_16 , icon_32 , icon_128];
}
■システムアイコンを非表示に設定する
システムアイコンを非表示に変更するには、bitmaps プロパティに、空の配列をセットします。
システムアイコンを非表示に設定する
import flash.desktop.NativeApplication;
import flash.desktop.DockIcon;
// ドックアイコンに対応している
if(NativeApplication.supportsDockIcon){
var app:NativeApplication = NativeApplication.nativeApplication;
// DockIcon オブジェクトを取得する
var dock_icon:DockIcon = app.icon as DockIcon;
// システムアイコンを非表示に設定する
dock_icon.bitmaps = [];
}
■システムアイコンのビットマップのサイズを調べる
現在表示されている、システムアイコンのビットマップのサイズを調べるには、以下のプロパティを使用します。
width プロパティから、幅が取得できます。
height プロパティから、高さが取得できます。
システムアイコンのビットマップのサイズを調べる
import flash.desktop.NativeApplication;
import flash.desktop.DockIcon;
import flash.display.BitmapData;
// ドックアイコンに対応している
if(NativeApplication.supportsDockIcon){
var app:NativeApplication = NativeApplication.nativeApplication;
// DockIcon オブジェクトを取得する
var dock_icon:DockIcon = app.icon as DockIcon;
// アイコン用 BitamapData オブジェクトを作成する
var icon_16:BitmapData = new BitmapData( 16, 16 , true , 0xFFFF0000);
var icon_32:BitmapData = new BitmapData( 32, 32 , true , 0xFF00FF00);
var icon_128:BitmapData = new BitmapData(128, 128 , true , 0xFF0000FF);
// システムアイコン用ビットマップを設定する
dock_icon.bitmaps = [icon_16 , icon_32 , icon_128];
// システムアイコンのビットマップのサイズを調べる
var w:int = dock_icon.width;
var h:int = dock_icon.height;
trace("width:" + w + " height:" + h);
}
コンテキストメニューを使用する
■コンテキストメニューを表示する
コンテキストメニューを表示するには、menu プロパティを使用します。
menu プロパティに、NativeMenu オブジェクトを渡します。
NativeMenu クラスの使い方については、こちらで解説しています。
ドックアイコン上で、マウス右ボタンを押したときに、コンテキストメニューが表示されるようになります。
ドックアイコンにコンテキストメニューを表示する
import flash.desktop.NativeApplication;
import flash.desktop.DockIcon;
import flash.display.BitmapData;
import flash.display.NativeMenu;
import flash.display.NativeMenuItem;
import flash.events.Event;
// ドックアイコンに対応している
if(NativeApplication.supportsDockIcon){
// ------------------------------------------------------------
// サブ用メニューを作成
// ------------------------------------------------------------
// NativeMenu オブジェクトを作成
var menu_child:NativeMenu = new NativeMenu();
// 「サブアイテム0」を作成し、最後尾に登録
var menu_child_item_0:NativeMenuItem = new NativeMenuItem("サブアイテム0");
menu_child.addItem(menu_child_item_0);
// 「サブアイテム1」を作成し、最後尾に登録
var menu_child_item_1:NativeMenuItem = new NativeMenuItem("サブアイテム1");
menu_child.addItem(menu_child_item_1);
// ------------------------------------------------------------
// ルート用メニューを作成
// ------------------------------------------------------------
// NativeMenu オブジェクトを作成
var menu:NativeMenu = new NativeMenu();
// メニューが選択されたときに呼び出されるイベント
menu.addEventListener(Event.SELECT , function (e:Event):void{
// 選択されたメニューアイテム
var menu_item:NativeMenuItem = e.target as NativeMenuItem;
trace(menu_item.label);
});
// 「ルートアイテム0」を作成し、最後尾に登録
var menu_item_0:NativeMenuItem = new NativeMenuItem("ルートアイテム0");
menu.addItem(menu_item_0);
// 「ルートアイテム1」を作成し、最後尾に登録
var menu_item_1:NativeMenuItem = new NativeMenuItem("ルートアイテム1");
menu.addItem(menu_item_1);
// 「ルートアイテム2」を作成し、最後尾に登録
var menu_item_2:NativeMenuItem = new NativeMenuItem("ルートアイテム2");
menu.addItem(menu_item_2);
// サブメニューとして登録
menu_item_2.submenu = menu_child;
// ------------------------------------------------------------
// ドックアイコン用コンテキストメニューを表示
// ------------------------------------------------------------
var app:NativeApplication = NativeApplication.nativeApplication;
// DockIcon オブジェクトを取得する
var dock_icon:DockIcon = app.icon as DockIcon;
// システムアイコン用ビットマップを設定する
dock_icon.bitmaps = [new BitmapData(128, 128 , true , 0xFFFF0000)];
// ドックアイコンに、ネイティブメニューを登録する
dock_icon.menu = menu;
}
バウンスを使用する
■バウンスとは?
ドックアイコンがバウンドします。
AIR アプリケーションが、バックグラウンドで動作している場合に動作します。
■バウンスを使用する
バウンスを動作させるには、bounce() メソッドを使用します。
引数に、NotificationType 定数をセットします。
定数 | 文字列 | 説明 |
NotificationType. | "informational" | 通常の情報の通達 |
NotificationType. | "critical" | 重要な情報の通達 |
バウンスを使用する
import flash.desktop.NativeApplication;
import flash.desktop.DockIcon;
import flash.desktop.NotificationType;
import flash.display.BitmapData;
// ドックアイコンに対応している
if(NativeApplication.supportsDockIcon){
var app:NativeApplication = NativeApplication.nativeApplication;
// DockIcon オブジェクトを取得する
var dock_icon:DockIcon = app.icon as DockIcon;
// システムアイコン用ビットマップを設定する
dock_icon.bitmaps = [new BitmapData(128, 128 , true , 0xFFFF0000)];
// バウンスを使用する
dock_icon.bounce(NotificationType.CRITICAL);
}