首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActionScript / AIR -在运行时确定设备配置文件?

ActionScript / AIR -在运行时确定设备配置文件?
EN

Stack Overflow用户
提问于 2011-03-20 08:10:17
回答 2查看 1.4K关注 0票数 3

我正在为桌面和移动设备开发一个应用程序,并希望为每个构建使用相同的代码库。

我想在一些显示对象上使用cacheAsBitmapMatrix,但是如果AIR应用程序中包含mobileDevice或extendedMobileDevice以外的设备配置文件,则cacheAsBitmapMatrix会抛出一个错误。

以下内容将是理想的:

代码语言:javascript
复制
if (cacheAsBitmapMatrix.isSupported)
   myDisplayObject.cacheAsBitmapMatrix = new Matrix();

使用try/catch更新:

代码语言:javascript
复制
try                {myDisplayObject.cacheAsBitmapMatrix = new Matrix();}
catch(error:Error) {}
finally            {myDisplayObject.cacheAsBitmap = true;}

最新情况:

除了电视资料外,这也应有助于区分移动和桌面:

代码语言:javascript
复制
//Resoslve Profile
if  (Capabilities.os.indexOf("Windows") > -1 || Capabilities.os.indexOf("Mac") > -1 || Capabilities.os.indexOf("Linux") > -1)
    trace("Desktop Profile");
    else
    trace("Mobile Profile");

更新2:

这似乎是最简单的方法,也可能是在运行时确定概要文件的最常见方法是调用:

代码语言:javascript
复制
NativeWindow.isSupported;

来自flash.display.NativeWindow文档:

AIR profile支持:所有桌面操作系统都支持此功能,但移动设备或电视设备不支持AIR。您可以使用NativeWindow.isSupported属性在桌面设备上测试运行时的支持。有关跨多个概要文件的API支持的更多信息,请参见AIR配置文件支持。

更新3:

在BlackBerry PlayBook模拟器上进行测试时,支持NativeWindow。我还没有在设备上测试这个,以确定它是否在模拟器上得到了支持。此后,我开始使用以下方法来确定移动和桌面配置文件之间的区别:

代码语言:javascript
复制
if  (
    (Capabilities.os.toLowerCase().indexOf("mac") == -1) &&
    (Capabilities.os.toLowerCase().indexOf("windows") == -1) &&
    (Capabilities.os.toLowerCase().indexOf("linux") == -1)
    )
    deviceIsMobile = true;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-20 15:56:36

文档为不同配置文件指定设备功能。由于cacheAsBitmapMatrix没有列出可用的getter,所以您需要自己检查一次。尝试/捕捉块必须很容易完成。

编辑:--我将试着在“检查一次”下说明我的意思:

代码语言:javascript
复制
public class Capabilities2
{
    private static var cacheAsBitmapMatrixChecked:Boolean;
    private static var cacheAsBitmapMatrixStatus:Boolean;

    public static function get cacheAsBitmapMatrixIsSupported():Boolean
    {
        if (cacheAsBitmapMatrixChecked) return cacheAsBitmapMatrixStatus;
        var test:Sprite = new Sprite();
        try
        {
            text.cacheAsBitmapMatrix = new Matrix();
            cacheAsBitmapMatrixStatus = true;
        }
        catch (error:Error)
        {
            cacheAsBitmapMatrixStatus = false;
        }
        cacheAsBitmapMatrixChecked = true;
        return cacheAsBitmapMatrixStatus;
    }
}

获取当前配置文件可能是更清洁的解决方案,但我不知道如何做。另一个“想法”:使用上面的文档,测试功能并从结果中推断出概要文件,如爱因斯坦谜语 :)

票数 2
EN

Stack Overflow用户

发布于 2013-07-23 07:44:09

对于运行时检查您的应用程序是在移动上还是在web上,您还可以使用"Capabilities.playerType“。

代码语言:javascript
复制
if (Capabilities.playerType == "Desktop") {
    trace ("running on mobile");                
}
else {
    trace ("running on web");
}
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5367401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档