gpt4 book ai didi

actionscript-3 - 在 AS3 移动应用程序中设置 ApplicationDPI

转载 作者:行者123 更新时间:2023-12-04 04:32:42 25 4
gpt4 key购买 nike

我在 Flash Builder 中仅使用 AS3(没有 flex 的东西)开发一个应用程序。在 flex 中,可以通过以下代码设置应用程序的 dpi:

<s:ViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
xmlns:s="library://ns.adobe.com/flex/spark" applicationDPI="320">

但我只使用 AS3。我了解到无法在运行时更改应用程序的 DPI(使用 AS3),但我如何在项目设置、编译器设置中设置它,或者是否有其他方法可以做到这一点?

此外,默认应用程序的 DPI 设置是多少?

在这里问,因为在网上找不到(只有基于 flex 的解决方案)。

最佳答案

移动设备上的 DPI 由硬件设置,完全取决于手机和屏幕。当您在 Flex 移动设备中设置 applicationDPI 时,您是在告诉 Flex 自动缩放您的 Assets 。

Automatic scaling. Developers can choose to specify a target DPI for their application by setting the applicationDPI property on the application. When this is explicitly set, developers should set up their skins and layout as if they were running on a device of the given DPI. At runtime, if the device has a different DPI from the specified target DPI, Flex will automatically scale the entire application to preserve the approximate physical size of the application and its controls. For example, if an application is targeted at 160 DPI, it will automatically scale by 1.5x on a 240 DPI device. If you choose not to use this feature, you'll need to make sure your custom skins and view layouts adapt properly to different pixel densities at runtime. Source

在 AS3 移动项目中,您需要自己处理。

您可以使用 Capabilities.screenDPI 获取当前 DPI,但我认为您可能想要的是一个比例来缩放您的 Assets 。一种方法是从原始游戏宽度开始。

 private static const WIDTH:Number = 1024;

然后您可以使用

 var ratio:Number = stage.fullScreenWidth / WIDTH;

并将其应用于您的 Assets

myBitmap.scaleX = myBitmap.scaleY = ratio;

现在这不会考虑设备的旋转,因此 fullScreenWidth/Height 可能会翻转。要检查你需要做这样的事情

if (stage.fullScreenWidth > stage.fullScreenHeight){
//portrait
} else {
//landscape
}

希望对你有帮助

关于actionscript-3 - 在 AS3 移动应用程序中设置 ApplicationDPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10644314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com