ゆっくりのデスクトップマスコットを作る3(NativeMenu)


今回は右クリックでメニューを開きそして、サイズの変更を出来るようにしたいと思います。
こんな感じに↓



ちなみにサイズ以外の項目はこれから実装していこうと思っている機能です。
時計
タイマー
おしゃべり
音量調整
あとできたら、何かAPIを利用したいかも。



まずは右クリックで開くメニューの作り方
例えば

var myMenu:NativeMenu = new NativeMenu;
				
var yukkuriMenu:NativeMenuItem = new NativeMenuItem("ゆっくり");
myMenu.addItem(yukkuriMenu);
yukkuriMenu.checked = true;  //チェックを付ける
				
var clockMenu:NativeMenuItem = new NativeMenuItem("時計");
myMenu.addItem(clockMenu);
				
var timerMenu:NativeMenuItem = new NativeMenuItem("タイマー");
myMenu.addItem(timerMenu);

this.contextMenu = myMenu;


こんな感じに書くと、こうなります↓



まず、NativeMenuをnewしてそこにアイテムをaddChildしていくって感じ。


さらに上の続きで

//区切り線
var separator:NativeMenuItem = new NativeMenuItem("", true);
myMenu.addItem(separator);
				
var sizeMenu:NativeMenuItem = myMenu.addSubmenu(new NativeMenu, "サイズ");
var large:NativeMenuItem = new NativeMenuItem("大");
var medium:NativeMenuItem = new NativeMenuItem("中");
var small:NativeMenuItem = new NativeMenuItem("小");
sizeMenu.submenu.addItem(large);
sizeMenu.submenu.addItem(medium);
sizeMenu.submenu.addItem(small);
large.addEventListener(Event.SELECT, resizeLarge);
medium.addEventListener(Event.SELECT, resizeMedium);
small.addEventListener(Event.SELECT, resizeSmall);
medium.checked = true;


こう書くと、こうなる↓



NativeMenuItemの第二引数をtrueにすると区切り線になります。
そして、次にサブメニューを作って、そのメニューに上と同じくaddItemをして項目を作成。
そして最後にサブメニューの項目が選択されたときのイベントを設定。


残りの音量や終了の項目も同じように追加してイベントを設定しています。
あとサイズの変更はscaleX, scaleYの値を変えるだけで変更できます。
詳しくはソースを見てください。


次回は時計とタイマーを実装する予定。



ソース