使用OpenFL将Haxe Flash应用程序编译到Adobe AIR

问题描述

我正在为一家公司提供用haxe编写的业务应用程序的公司的支持,该业务应用程序编译为Flash swf。该应用程序是一个布局生成器,加载了一系列项目,然后可以将这些项目拖到布局上。使用PHPAMFPHP服务器加载项目列表。

我们正在寻找的是将该应用程序移植到Adobe AIR,以便我们可以在2020年之后继续使用此应用程序。经过一些研究,我发现了Lime/OpenFL VSCode的扩展名和思想。最好的方法是尝试使用haxe获取AIR代码以编译为Lime。我没有使用haxeFlashOpenFL开发的经验,所以这对我来说是新的,并且我不知道此端口在多大程度上可行。因此,我的第一个问题很广泛,但是我想知道是否有人在进行这种转换方面有经验,并且谁能对这种方法的可行性发表评论?

要提供有关该应用程序的更多详细信息,以下是build.hxml,它用于编译当前的Flash应用程序:

-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制作的许多组件。因此,关于该端口的下一个问题是,当我编译为index.swf时是否可以像现在这样包含此AIR

我已安装Haxe 4.0;我在OpenFL中创建了一个VSCode项目,并尝试对其进行编译。我收到许多错误消息,主要的两个错误是haxe.remoting.AMFConnection的导入失败,并出现 type 错误,并且应用程序没有 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 ),但是我敢肯定除了类的名称,还有更多需要更改的内容。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)