Air 自动调整新空气窗口内容的大小
AIR的Air 自动调整新空气窗口内容的大小,air,window,adobe,autoresize,Air,Window,Adobe,Autoresize,AIR的spark.components.WindowedApplication将在我手动拉伸窗口边界或最大化/恢复窗口时自动调整其内容大小。但是spark.components.Window类不提供这种“开箱即用”的功能:当相应的spark.components.Window.nativeWindow实例调整其边界时,当我拉伸/最大化/还原窗口时,窗口的内容不会更改其大小。我的AIR应用程序需要打开多个窗口和可调整大小的窗口。如何使它们自动调整其内容大小以匹配nativeWindow边界?假设
spark.components.WindowedApplication
将在我手动拉伸窗口边界或最大化/恢复窗口时自动调整其内容大小。但是spark.components.Window
类不提供这种“开箱即用”的功能:当相应的spark.components.Window.nativeWindow
实例调整其边界时,当我拉伸/最大化/还原窗口时,窗口的内容不会更改其大小。我的AIR应用程序需要打开多个窗口和可调整大小的窗口。如何使它们自动调整其内容大小以匹配nativeWindow边界?假设您指的是spark.components.Window
,这是基于skinnablecontainer的,因此不应该有任何东西阻止您使用基于百分比的布局/约束
手动处理此类事件的其他方法包括侦听来自后台的ResizeEvent。解决方案是侦听来自NativeWindow的RESIZE事件,然后在Window的
后台实例上手动设置后台宽度
和后台高度
。请参阅下面的代码
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;
}
不幸的是,基于百分比的宽度和高度不能像我们所期望的那样与spark.components.Window一起工作-只是什么都没有发生。将Event.RESIZE的EventListener添加到stage
可以很好地调整窗口大小。当我试图缩小窗口时,它会猛拉,但不会调整大小。我的侦听器代码是:private function onStageResize(event:event):void{width=stage.width;height=stage.height;}
谢谢你,Mike,现在我找到了侦听调整大小事件的正确方法。