初期ウィンドウの systemChrome と transparent は変更できません。また、 表示ウィンドウカタログ(Adobeのヘルプ) で比較されている、Type も変更できません。 初期ウィンドウのタイプは必ず normal であるため、 ウィンドウは必ずタスクバーに表示されます。 まずは、2次ウインドウを作成せずにできる状態を確認していきます。 systemChrome : standard でウィンドウを透明にしない ( transparent="false" )WindowedApplication で、title を設定すると、XML で設定した title が上書きされます 下の画像は、backgroundAlpha="0" を指定したものです ※ standard で、transparent を true には設定できません <?xml version="1.0" encoding="utf-8" ?> <application xmlns="http://ns.adobe.com/air/application/1.0"> <id>airApplication</id> <version>1.0</version> <filename>airApplication</filename> <initialWindow> <title>AIR アプリケーション</title> <content>Mainw.swf</content> <x>300</x> <y>200</y> <width>600</width> <height>300</height> <systemChrome>standard</systemChrome> <transparent>false</transparent> <visible>false</visible> <minimizable>true</minimizable> <maximizable>true</maximizable> <resizable>true</resizable> </initialWindow> </application> systemChrome : none でウィンドウを透明にしない下の画像は、backgroundAlpha="0" を指定したものです systemChrome : none でウィンドウを透明にする上から順に、backgroundAlpha は、1、0(完全透過)、0.1 です。 完全透過にすると、背景のデスクトップの操作が可能になります 完全透過ウインドウの showFlexChrome を false にする完全透過で FlexChrome を使わない事によって、デスクトップに浮いたようなフォームになります。 当然、マウスで移動ができないのですが、タスクバーに表示されているので( メインウインドウなので ) 最小化したり、元に戻したり、終了する事は可能です。 しかしこのままでは実用にならないので、マウスまたはキーボードで移動可能にする必要があります。 また、この表示特性にあわせて、常に前面に表示(alwaysInFront="true")するようにすると良いでしょう キーボードによる移動処理
<?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" showFlexChrome="false" initialize="initData();" creationComplete="initApp1()" applicationComplete="initApp2()" visible="true" usePreloader="true" backgroundAlpha="0" alwaysInFront="true" keyDown="moveThisWindow(event)" > <mx:Script> <![CDATA[ // ***************************************************** // 上下キーによる移動 // ***************************************************** private function moveThisWindow(e:KeyboardEvent):void { var primaryScreen:Screen = Screen.mainScreen; var rect:Rectangle = primaryScreen.bounds; var x:int = mx.core.Application.application.nativeWindow.x; var y:int = mx.core.Application.application.nativeWindow.y; var width:int = mx.core.Application.application.nativeWindow.width; var height:int = mx.core.Application.application.nativeWindow.height; if ( e.keyCode == 37 ) { x -= 10; if ( x < 0 ) { x = 0; } } if ( e.keyCode == 38 ) { y -= 10; if ( y < 0 ) { y = 0; } } if ( e.keyCode == 39 ) { x += 10; if ( x > rect.width - width ) { x = rect.width - width; } } if ( e.keyCode == 40 ) { y += 10; if ( y > rect.height - height ) { y = rect.height - height; } } mx.core.Application.application.nativeWindow.x = x; mx.core.Application.application.nativeWindow.y = y; } // ********************************************************* // initialize // ********************************************************* public function initData():void { trace("[App:beforeDisplay]"); } // ********************************************************* // creationComplete // ********************************************************* private function initApp1():void { trace("[App:afterDisplay]"); } // ********************************************************* // applicationComplete // ********************************************************* private function initApp2():void { trace("[App:start]"); dr.setFocus(); } ]]> </mx:Script> <mx:Image id="dr" source="@Embed('dr.png')" /> <mx:HBox> <mx:TextInput id="data" width="400" /> <mx:Button id="btn" label="参照" styleName="blackButton" /> </mx:HBox> </mx:WindowedApplication> |