2

我们有一个启动 AIR 应用程序的 flash 按钮,但无法正确检测到 AIR 安装在 Chrome 21 的新 Pepper flash 插件下(刚刚为 Windows 发布)。这是我们的动作脚本的代码片段:

internal var airSWFLoader:Loader = new Loader();
loaderContext.applicationDomain = ApplicationDomain.currentDomain;

airSWFLoader.contentLoaderInfo.addEventListener(Event.INIT, airSWF_init);
airSWFLoader.load(new URLRequest("http://airdownload.adobe.com/air/browserapi/air.swf"), loaderContext);

internal function airSWF_init(event:Event):void {
    try {
        airSWF = event.target.content;
        airSWF.getAIRStatus(); //fails to detect AIR here with value "available"
    } catch (e:Error) {
        Logger.error(e.message,e.errorID);
}

对 getAIRStatus() 的调用返回“可用”而不是“已安装”,因为它在同一台机器上的其他浏览器上直接使用 Adob​​e 的常规 Flash 插件。

想看看其他人是否遇到过类似的问题,或者是否有更好的方法来检测是否安装了 AIR?这会阻止我们的应用程序在 Windows 上的 Chrome 21 下运行。

4

3 回答 3

1

看起来与谷歌论坛上的这个错误报告有关:

铬错误报告

看起来还没有解决方法。

于 2012-08-08T01:11:23.217 回答
1

我们长期存在这个问题,并且有一个解决方法,用户每次使用我们的服务时都会下载并安装我们的 Native Air 应用程序。这将在安装后启动我们的应用程序并使用剪贴板作为参数——或者我们让用户在他们的设置中手动启用我们的域——显然不是最佳的。

然后我找到了以下文章: http ://helpx.adobe.com/flash-player/kb/unsandbox-localconnection-chrome.html

这需要使用flashfileattributes实用程序,该实用程序可从以下网址下载:https: //support.influxis.com/hc/en-us/articles/203135797-ICS-Chrome-Screen-Share-Pepper-Flash-Fix

这篇文章讨论了在 Chrome 中启用 LocalConnections。它没有提到 Air 或 Air Browser API,但我有一种预感,LocalConnection 就是这一切的完成方式。

借鉴示例,我能够与我们的 Air 应用程序通信并启动我们的应用程序。

我会提出一个建议 - 看看传递给您的下载回调的事件 - 我最初没有为 Flash Enabler 下载对话框腾出足够的空间,所以我收到了 2074(舞台上没有足够的空间)错误。一旦这被清除,它就像一颗宝石。

如果我有时间清理我们的代码,我会发布它。否则 - 我希望这会有所帮助!

于 2014-07-22T17:41:41.453 回答
0

它的发生是由于 Chrome 沙盒 Flash 的新方式,它破坏了 Air 集成。我在这里向 Adob​​e 提交了一个关于它的错误。不幸的是,我们所能做的就是投票并希望。:/

于 2012-08-15T18:21:18.840 回答