0

我有一个显示图像的应用程序。它根据屏幕旋转调整它们的大小,通常设置“picwidth = screen.width”,其中“picwidth”是每个图片的宽度绑定到的属性。

所以我有几个类似的功能:

protected function changeOrientation(e:StageOrientationEvent):void
               {
                     picwidth = screen.width;
                     picheight = screen.width*1.467;
               }

我也试过用对象本身的变量来做这个:

protected function changeOrientation(e:StageOrientationEvent):void
               {
                   img.width = screen.width;
                   img.height = screen.width*1.467;
               }

在模拟器中,这些功能可以正常工作。但在设备上,“screen.width”似乎总是在方向改变之前获取值,给出与我需要的完全相反的尺寸。

注意:这不仅发生在图像上,还发生在组容器、TextAreas 以及任何尺寸取决于屏幕尺寸的东西上。

我尝试简单地切换值,以便它获取值并将它们分配给相反的变量以解决延迟问题,然后它们在我的设备上工作,但它们在模拟器中倒退,我担心其他设备将作为模拟器可以,它会再次被破坏。

有什么好的解决办法吗?

4

1 回答 1

1

此问题已通过以下方式解决:

更改事件侦听器:

stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE, changeView);

至:

stage.addEventListener(Event.RESIZE, changeView);

并将 aEvent而不是 a传递stageOrientationEvent给每个处理程序方法。

在我需要的每一个实例中工作。有点遗憾的是,唯一StageOrientationEvent.ORIENTATION_CHANGE设计要做的事情可以被更通用的功能所超越。

于 2012-06-15T18:43:01.167 回答