Actionscript 3 从一个代码库编译适用于PC、Android和Mac的Flex Air应用程序?

Actionscript 3 从一个代码库编译适用于PC、Android和Mac的Flex Air应用程序?,actionscript-3,apache-flex,compiler-construction,cross-platform,flex4.6,Actionscript 3,Apache Flex,Compiler Construction,Cross Platform,Flex4.6,我想使用Air为PC、Mac、Android和Ios构建 是否有可能像Adobe建议的那样从单个代码库中实现这一点 或者我需要维护4个独立的构建 请提供一些指导 问候 C到目前为止,我已经能够维护一个代码库。我做过如下工作: private function getHostName() : void { if (NativeProcess.isSupported) { var OS :

我想使用Air为PC、Mac、Android和Ios构建

是否有可能像Adobe建议的那样从单个代码库中实现这一点

或者我需要维护4个独立的构建

请提供一些指导

问候
C

到目前为止,我已经能够维护一个代码库。我做过如下工作:

        private function getHostName() : void
        {
            if (NativeProcess.isSupported)
            {
                var OS : String = Capabilities.os.toLocaleLowerCase();
                var file : File;

                if (OS.indexOf('win') > -1)
                {
                    // Executable in windows
                    file = new File('C:\\Windows\\System32\\hostname.exe');
                }
                else if (OS.indexOf('mac') > -1 )
                {
                    // Executable in mac
                }
                else if (OS.indexOf('linux'))
                {
                    // Executable in linux
                }

                var nativeProcessStartupInfo : NativeProcessStartupInfo = new NativeProcessStartupInfo();
                nativeProcessStartupInfo.executable = file;

                var process : NativeProcess = new NativeProcess();
                process.addEventListener(NativeProcessExitEvent.EXIT, onExitError);
                process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutput);
                process.start(nativeProcessStartupInfo);
                process.closeInput();
            }
        }

        private function onOutput(event : ProgressEvent) : void
        {
            var strHelper : StringHelper = new StringHelper();
            formStationID.text = event.target.standardOutput.readUTFBytes(event.target.standardOutput.bytesAvailable);
            formStationID.text = strHelper.trimBack(formStationID.text, "\n");
            formStationID.text = strHelper.trimBack(formStationID.text, "\r");
        }

        private function onExitError(event : NativeProcessExitEvent) : void
        {
        }

处理本机呼叫。除了本机调用之外,我发现很少有东西不能通用编写,但在这些东西中,上述方法也应该适用于代码集的任何部分。

首先感谢您的回复,这就解决了桌面操作系统的问题。我的假设正确吗?当Android和IOS上线时,我需要维护一个单独的移动项目。我要说不,至少对于后端类型的编程,就像上面的例子一样,可以使用适当的if条件调用移动工作。我知道这听起来很奇怪,但从Fortran时代起,我就一直在使用这种方法来确定我是在生产环境中还是在测试环境中。奥德丽,当我使用锌作为包装时,我采用了几乎相同的方法,我只是希望Air能够更加统一这些功能,这样我就可以创建一个统一的应用程序。(就像在每个平台上点击一个不同的编译按钮,它会在虚拟机级别上整理出差异)。我最初的阅读表明,我需要以不同的方式进行视图导航,我正在尝试找出除编译之外的其他内容。你给了我思考的食物,我很想看看我是否能实现一个“一体”的方法,它的成功在很大程度上取决于Air对平板电脑和苹果设备施加的其他限制,比如我能否使用html组件等等。