コード的にかなり長くなったが、NativeWindowを3つ追加してそれぞれ
タイトルやその他プロパティをつけてみた
NativeWindowを透過して、ドラッグする場合にはドラッグ用のインスタンスを追加して親ウィンドウをドラッグできるようにするが、一つ目のNativeWindowをドラッグした後に他のNativeWindowをドラッグしようとするとエラーが起きてしまう。 う〜ん 何故だろう? 原因わかったらコメントで追加します
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | package{ import flash.display.Sprite; import flash.display.MovieClip; import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BitmapDataChannel; import flash.display.NativeWindowInitOptions; import flash.display.NativeWindowSystemChrome; import flash.display.NativeWindowType; import flash.display.NativeWindow; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.*; import flash.text.*; import flash.geom.Rectangle; import flash.system.Capabilities; public class NativeWindowMenu extends Sprite{ private var mainWindow:NativeWindow; private var partsWindow:NativeWindow; private var propatyWindow:NativeWindow; //NativeWindow生成 public function NativeWindowMenu(){ //Windowの体裁と振る舞いの設定 var windowOptions:NativeWindowInitOptions = new NativeWindowInitOptions(); windowOptions.systemChrome = NativeWindowSystemChrome.STANDARD; windowOptions.type = NativeWindowType.NORMAL; windowOptions.resizable = false; windowOptions.maximizable = false; windowOptions.minimizable = false; //windowOptions.transparent = true; var w:int = Capabilities.screenResolutionX; var h:int = Capabilities.screenResolutionY; partsWindow = new NativeWindow(windowOptions); partsWindow.width = 200; partsWindow.height = h - 200; partsWindow.stage.scaleMode = StageScaleMode.NO_SCALE; partsWindow.stage.align = StageAlign.TOP_LEFT; partsWindow.bounds = new Rectangle(w - partsWindow.width, 20, partsWindow.width, partsWindow.height); partsWindow.title = "部品"; partsWindow.alwaysInFront = true; partsWindow.activate(); partsWindow.stage.addChild(createDragBar(partsWindow.width, 10, false, 0x333333)); partsWindow.stage.addEventListener(MouseEvent.MOUSE_DOWN, _startMove); //------------------------------------------------------------------------- var myText:TextField = new TextField(); myText.selectable = false; myText.text = "ABCDEFG"; myText.addEventListener(MouseEvent.MOUSE_DOWN, function(){ if(propatyWindow.stage.getChildByName("myTXT")){ propatyWindow.stage.removeChild(propatyWindow.stage.getChildByName("myTXT")); } var propatyText:TextField = new TextField(); propatyText.text = "show me?"; propatyText.name = "myTXT"; propatyWindow.stage.addChild(propatyText); }); //partsWindow.stage.addChild(myText); //------------------------------------------------------------------------- propatyWindow = new NativeWindow(windowOptions); propatyWindow.width = w; propatyWindow.height = 200; propatyWindow.stage.scaleMode = StageScaleMode.NO_SCALE; propatyWindow.stage.align = StageAlign.TOP_LEFT; propatyWindow.bounds = new Rectangle(0, h - propatyWindow.height + 20, propatyWindow.width, propatyWindow.height); propatyWindow.title = "プロパティ"; propatyWindow.alwaysInFront = true; propatyWindow.activate(); propatyWindow.stage.addChild(createDragBar(10, propatyWindow.height, false, 0x333333)); propatyWindow.stage.addEventListener(MouseEvent.MOUSE_DOWN, _startMove); mainWindow = new NativeWindow(windowOptions); mainWindow.width = 640; mainWindow.height = 420; mainWindow.stage.scaleMode = StageScaleMode.NO_SCALE; mainWindow.stage.align = StageAlign.TOP_LEFT; mainWindow.bounds = new Rectangle(0, 20, w - partsWindow.width, h - propatyWindow.height); mainWindow.title = "main"; mainWindow.alwaysInFront = true; mainWindow.activate(); stage.nativeWindow.close(); } //Windowのドラッグ private function _startMove(event:Event):void{ event.currentTarget.nativeWindow.activate(); trace(event.currentTarget.nativeWindow.title); event.currentTarget.nativeWindow.startMove(); } // private function createDragBar(targetWidth:Number, targetHeight:Number, targetAlpha:Boolean, targetBodyColor:uint):MovieClip{ var bmd:BitmapData = new BitmapData(targetWidth, targetHeight, targetAlpha, targetBodyColor); var bmp:Bitmap = new Bitmap(bmd); var dragBar:MovieClip = new MovieClip(); dragBar.buttonMode = true; dragBar.addChild(bmp); dragBar.name = "dragBar"; return dragBar; } } } |