微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决使用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 ),但是我敢肯定除了类的名称,还有更多需要更改的内容

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。