Mac OS X上的Adobe AIR HTML Native全屏

时间:2014-02-01 16:36:50

标签: javascript macos actionscript-3 air

我正在 HTML / JavaScript 中在Adobe AIR for Mac中构建应用程序。

我想要做的是当应用程序加载时,使用OS X Lion及更高版本中的正确本机全屏幕使应用程序进入全屏模式。

这不是使用Flash / Flex使用的displayState

如果用户决定退出全屏模式,他们会在原生窗口中看到该应用,并可以使用窗口右上角的图标重新进入全屏模式。

我在此处找到了有关扩展程序的一些信息:http://forums.adobe.com/thread/1209193

FREObject _EnableFullScreenMode(FREContext ctx, void* functionData, uint32_t argc, FREObject argv[])
     {
        //We should be okay to do this, even on 10.6, according to this post:
        //http://www.cocoabuilder.com/archive/cocoa/311124-implementing-full-screen-for-10-7-but-app-should-also-run-on-10-6.html
        //We can't use [NSApp mainWindow] - didn't appear to work
        //This seems to though:
        NSArray * allWindows = [NSApp windows];
        if (allWindows.count > 0)
        {
            NSWindow *mainWindow = [allWindows  objectAtIndex: 0];
            NSWindowCollectionBehavior behavior = [mainWindow collectionBehavior];
            behavior |= NSWindowCollectionBehaviorFullScreenPrimary;
            [mainWindow setCollectionBehavior:behavior];
        }

        //TODO: Return a boolean instead depending on if we found the main window
        return NULL;
     }

这看起来像我想做的! 但在阅读Adobe AIR文档后,我无法理解这段代码应该存放在我的应用目录中的位置,以及如何在应用加载时调用它。

所以在我的index.html中我有:

$(document).ready(function() {

// Make window full-screen
// CALL THE EXTENSION TO MAKE THE APPLICATION FULL_SCREEN

// Make window active
window.nativeWindow.activate();

// Make it visible
window.nativeWindow.visible = true;

});

默认情况下,在应用程序描述符XML文件中使用<visible>false</false>不能看到initialWindow。并且如上所示,在文档上可见并激活。

缺少的部分正在扩展中加载并使窗口全屏显示。

打破这个问题:

  1. 扩展代码在哪里?例如。创建扩展文件并将其放在app目录中的任何特定位置?
  2. 如何将扩展程序加载到应用程序中
  3. 最后,我如何在文档准备好的全屏幕上
  4. Lion下面的OS X会发生什么?在介绍之前全屏工作是怎么做的?
  5. 希望我能指出正确的方向,因为文档完全困扰我,并且不解释扩展文件是如何创建的(至少对我来说)。

1 个答案:

答案 0 :(得分:0)

如果你想使用adobe原生扩展(ANE),你必须首先使用xCode for OSX创建扩展。

您可以在这个5部分教程中找到有关如何执行此操作的详细信息:Building a native extension for iOS and Android

之后,您必须将其打包在您的应用程序中。在这里,您可以获得有关如何在Flash Builder或Flash专业人员上执行此操作的一些信息:Using native extensions for Adobe AIR。它也在上一个教程的第5部分中进行了解释。如果你使用FDT,这里有一个关于如何添加ANE的链接:Add an ANE using FDT

本机扩展一方面是本机代码,另一方面是AS3代码。 如果一切正常,你只需要调用原生扩展的正确方法,它应该是好的:)

我希望这可以帮到你。