使用 OpenFL 将 Haxe Flash 应用程序编译到 Adob​​e AIR

Posted

技术标签:

【中文标题】使用 OpenFL 将 Haxe Flash 应用程序编译到 Adob​​e AIR【英文标题】:Compiling a Haxe Flash application to Adobe AIR using OpenFL 【发布时间】:2021-01-19 18:18:43 【问题描述】:

我正在为一家公司提供支持,该公司有一个用haxe 编写的商业应用程序,它编译为Flashswf。该应用程序是一个布局生成器,它加载一个项目列表,然后可以将其拖到布局上。项目列表是使用AMFphpPHP 服务器加载的。

我们正在考虑将这个应用程序移植到Adobe AIR,以便我们可以在 2020 年之后继续使用这个应用程序。经过一些研究,我发现了Lime/OpenFLVSCode 扩展,并认为最好的路线是尝试使用Limehaxe 代码编译为AIR。我没有任何使用haxeFlashOpenFL 开发的经验,所以这对我来说都是非常新的,我不知道这个端口在多大程度上是可行的。所以我的第一个问题非常广泛,但我想知道是否有人有过这样的转换经验,谁能评论这种方法的可行性?

为了更详细地介绍应用程序,这里是用于编译当前Flash 应用程序的build.hxml

-cp Source
-D LOCAL_TEST
-D haxe-boot
-D flash-use-stage
-swf-lib index.swf
-swf-version 9
-swf pdfbuilder.swf
-debug
PDFBuilder

index.swf 使用mxmlc 单独编译,只是使用Flex 制作的一些组件。所以我关于这个端口的下一个问题是,当我编译成AIR 时,我是否能够包含这个index.swf

我安装了Haxe 4.0;我在VSCode 中创建了一个OpenFL 项目并尝试编译它。我收到许多错误消息,主要的两个是 haxe.remoting.AMFConnection 的导入失败并出现 type not found 错误,并且应用程序没有 Main类型,因为Flash应用的启动明显不同。

我不确定如何更改启动;当前应用启动如下:

class PDFBuilder 
    // CONFIG
    inline public static var _hostAddress = #if LOCAL_TEST 'http://212.45.52.43' #else '' #end;
    inline public static var _hostLocalPath = 'C:/Inetpub/wwwroot';
    public static var _userPath:String;

    /** Reference to Main Flex Application object **/
    public static var flex:Dynamic;

    public static var app:PDFBuilder;
    public static var event:PDFBuilderEvents;

    public static var service = AMFConnection.urlConnect(#if LOCAL_TEST _hostAddress +
        '/commonfiles/php/amfphp-1.2/gateway.php' #else 'amfphp-1.2/gateway.php' #end);

    // Layout items container
    public static var itemData:ItemData = new ItemData(updateItemTreeData);

    public var grid:layout.Grid;
    public var events:PDFBuilderEvents;
    public var uploader:UploadManager;

    public function main(_flex:Dynamic) 
        app = this;

        ....

Lime 我相信期待一个 Main 类而不是反映应用程序名称的类名 (PDFBuilder),但我相信还有更多除了类名之外需要更改的东西。

【问题讨论】:

【参考方案1】:

在您的 hxml 文件中使用 --library 参数:https://haxe.org/manual/compiler-usage.html

对于haxe4,我认为你需要使用air4 lib https://lib.haxe.org/p/air4haxe/

【讨论】:

以上是关于使用 OpenFL 将 Haxe Flash 应用程序编译到 Adob​​e AIR的主要内容,如果未能解决你的问题,请参考以下文章

等待 Haxe/OpenFL 中的动画结束

markdown OpenFL + Haxe + visual Studio Code

如何查看 Haxe 中的可用空间?

Haxe 项目未编译

Actionscript 3 vs Haxe:为新的 Flash 项目选择哪个?

Haxe:东游记(上)part1:intro