NativeWindowにFlexコンポーネントが追加できない
AIRでテストアプリを作成していたら、新しく追加したNativeWindowにFlexコンポーネントが追加出来ないことに気がついた。自分が間違っているだけかもしれないのだが・・・。
以下が、自分がテストに使ったコード。
<?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" title="NativeWindowTest"> <mx:Script> <![CDATA[ public static const DEFAULT_WIDTH:Number = 500; public static const DEFAULT_HEIGHT:Number = 500; import flash.display.Sprite; import flash.display.NativeWindow; import flash.display.NativeWindowType; import flash.display.NativeWindowInitOptions; import flash.display.NativeWindowSystemChrome; private function openNewWindow():void { var initOptions:NativeWindowInitOptions = new NativeWindowInitOptions(); initOptions.systemChrome = NativeWindowSystemChrome.STANDARD; initOptions.transparent = false; var win:NativeWindow = new NativeWindow(initOptions); win.stage.align = StageAlign.TOP_LEFT; win.stage.scaleMode = StageScaleMode.NO_SCALE; win.height = DEFAULT_WIDTH; win.width = DEFAULT_HEIGHT; var button:Button = new Button(); button.label = 'このボタンは表示されない'; win.stage.addChild(button); // このテキストフィールドは表示される var tf:TextField = new TextField(); tf.width = win.width; tf.text = 'TEST'; win.stage.addChild(tf); var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xff0000); circle.graphics.drawCircle(win.stage.stageWidth / 2, win.stage.stageHeight / 2, win.stage.stageWidth / 4); circle.graphics.endFill(); win.stage.addChild(circle); win.visible = true; } ]]> </mx:Script> <mx:Button label="新しいウィンドウを開く" click="openNewWindow()" /> </mx:WindowedApplication>
1番目のButtonは追加しても何も表示されず、TextFieldとSpriteは表示されている。akihiro kamijoさんのこの記事によるとベータ1の時からこの問題は修正されていないようだ。
追記:私が動作確認した環境はMacOS版です。Win版は試していないので分かりません。