我有一个显示图片的应用。它根据屏幕旋转调整大小,通常设置为“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,尺寸取决于屏幕尺寸的任何内容。
我尝试过简单地切换值,然后获取值并将它们分配给相反的变量来解释延迟,然后它们在我的设备上工作,但它们在模拟器中向后,我担心其他设备会作为模拟器的功能,它将再次被打破。
对此有什么好的解决方案吗?
答案 0 :(得分:1)
此问题已解决:
从以下位置更改事件侦听器:
stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE, changeView);
为:
stage.addEventListener(Event.RESIZE, changeView);
并将Event
而不是stageOrientationEvent
传递给每个处理程序方法。
在我需要的每一个例子中工作。令人遗憾的是,StageOrientationEvent.ORIENTATION_CHANGE
设计用来做的唯一事情可以通过更普遍的功能来表现。