Flash 生成器中 AIR 模拟器的设备分辨率错误
我有这样的问题:我正在使用 Adobe AIR 2.6 和 Flash Builder 4.5 编写 Android 应用程序。我需要根据移动设备分辨率扩展我的资源。为此,我需要了解设备分辨率和 DPI。我正在使用这样的代码来获取它:
PlatformUtil.init(mainView.stage.stageWidth, mainView.stage.stageHeight,
Capabilities.screenDPI, mainView);
当我在设备上运行此代码时 - 一切正常!所有资源均已正确扩展(在 Nexus One 上)。 但是,当我在我的 desctop 计算机上的 flash builder 模拟器上运行它,并从设备 Google Nexus One 中进行选择时,它的分辨率必须为 800*480,但在代码中我得到的实际大小为 500*375。 当我使用 Capability 类时,它返回 1024*768 (我的桌面分辨率)。 那么,这有什么问题吗?为什么它返回错误的设备分辨率?我该如何解决这个问题? 感谢您的帮助。
I have such a problem: I'm writing application for Android using Adobe AIR 2.6 and Flash Builder 4.5. I need to scale my resources depending on mobile device resolution. For this purpose I need to know device resolution and DPI. I'm using such a code to get it:
PlatformUtil.init(mainView.stage.stageWidth, mainView.stage.stageHeight,
Capabilities.screenDPI, mainView);
When I run this code on device - all OK! All resources scaled properly (on Nexus One).
But when I run it on my desctop computer on flash builder simulator, and choose from devices Google Nexus One - it must have resolution 800*480, but in code I get actual size 500*375.
When I'm using Capabilities class, it returns me 1024*768 (my desctop resolution).
So, whats wrong with it? Why it returns me wrong device resolution? How can I solve this problem?
Thanx for help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我解决了这个问题。模拟器在 Event.RESIZE 的处理程序中返回有效的模拟器屏幕分辨率,可以这样做:
希望它能帮助像我这样的人。
I solved this issue. Simulator returns valid simulator screen resolution in handler on Event.RESIZE, this can be done like this:
Hope it will help someone like me.
您总是看到 500x375 作为宽度和高度的原因是因为这些是
mxmlc
编译器的默认值(特别是-default-size
选项)。有关详细信息,请参阅此处:http://livedocs.adobe。 com/flex/3/html/help.html?content=compilers_13.html
除非您提前知道移动设备的实际尺寸(这不太可能),否则您必须等待
Event。调整大小
在获取stage.stageHeight
之前触发。您应该在stage
对象上监听Event.RESIZE
。The reason you are always seeing 500x375 as your width and height is because those are the default values of the
mxmlc
compiler (specifically the-default-size
option). See here for details :http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_13.html
Unless you know the actual dimension of the mobile device ahead of time (which is unlikely), you have to wait for
Event.RESIZE
to fire before fetchingstage.stageHeight
. You should listen toEvent.RESIZE
on thestage
object.