屏幕尺寸未及时更新绑定,Flex Mobile

时间:2012-06-15 15:01:36

标签: flex screen-orientation flex-mobile flex4.6

我有一个显示图片的应用。它根据屏幕旋转调整大小,通常设置为“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”似乎总是在方向改变之前抓住这个值,给出与我需要的尺寸完全相反的尺寸。

注意:这不仅适用于图像,也适用于Group容器,TextAreas,尺寸取决于屏幕尺寸的任何内容。

我尝试过简单地切换值,然后获取值并将它们分配给相反的变量来解释延迟,然后它们在我的设备上工作,但它们在模拟器中向后,我担心其他设备会作为模拟器的功能,它将再次被打破。

对此有什么好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

此问题已解决:

从以下位置更改事件侦听器:

stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE, changeView);

为:

stage.addEventListener(Event.RESIZE, changeView);

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

在我需要的每一个例子中工作。令人遗憾的是,StageOrientationEvent.ORIENTATION_CHANGE设计用来做的唯一事情可以通过更普遍的功能来表现。