当我手动拉伸窗口边界或最大化/恢复它时, AIRspark.components.WindowedApplication
会自动调整其内容的大小。但是spark.components.Window
类不提供这种“开箱即用”的功能:当我拉伸/最大化/恢复窗口时,当相应的spark.components.Window.nativeWindow
实例确实调整其边界时,窗口的内容不会改变它们的大小。我的 AIR 应用程序需要打开多个窗口和可调整大小的窗口。如何让它们自动调整其内容的大小以匹配 nativeWindow 边界?
问问题
1190 次
2 回答
1
假设您的意思是spark.components.Window
,这是基于 skinnablecontainer 的,因此不应该有任何东西阻止您使用基于百分比的布局/约束。
<s:Window xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="100%" height="100%">
其他手动处理此类事情的方法包括监听来自舞台的 ResizeEvent。
于 2012-05-29T22:02:30.277 回答
0
解决方案是监听来自 NativeWindow 的 RESIZE 事件,然后手动设置stageWidth
和stageHeight
在 Window 的stage
实例上。请参阅下面的代码。
override public function open(openWindowActive:Boolean=true):void {
super.open(openWindowActive);
if (nativeWindow) {
chromeWidth = nativeWindow.width - this.width;
chromeHeight = nativeWindow.height - this.height;
nativeWindow.addEventListener(NativeWindowBoundsEvent.RESIZE, onNativeResize);
}
}
private function onNativeResize(event:NativeWindowBoundsEvent):void {
stage.stageWidth = event.afterBounds.width - chromeWidth;
stage.stageHeight = event.afterBounds.height - chromeHeight;
}
于 2012-08-06T15:55:11.847 回答