繁体   English   中英

在 Flash/Animate 中扩展 Haxe 类

[英]Extending Haxe class in Flash/Animate

我正在尝试将一些在 Flash/Animate 中制作的动画集成到 OpenFL 应用程序中。
为此,我使用了 OpenFL SWF 库。 在我的 project.xml 我有这个:

<haxelib name="swf" />
<library path="assets/library.swf" prefix="View" generate="true" preload="true" />

到现在为止还挺好。
问题是我不能用stop();来控制动画stop(); (或任何其他类型的时间线脚本)在我的 swf 中,因为 SWF 库尚不支持它。

我目前的解决方案涉及框架标签。
简单来说,我只是在主时间线的标签中添加特殊值,然后在 Haxe 中读取它们。
这有效,但不是自动的(我必须手动解析 swf 中的每个类),并且,要以我想要的方式使用这些类,我必须进行一些组合。
我认为继承是一种更好的方法,为此我需要让每个导出的影片剪辑扩展一个执行标签解析的类,但同样,我不能使用 AS3。

查看 Haxe 生成的代码,我看到在编译目标代码(例如 HTML5)之前,因为我设置了generate="true"属性,OpenFL 创建了设置为从 swf 导出的类。
如果我更改文件以扩展openfl.display.MovieClip以外的其他类并将其发送到 Haxe 编译器,我会得到预期的行为。

最后的“墙”是如何在无需手动更改每个生成的文件的情况下实现自动化(这会破坏自动化的唯一目的)?

摘自 Singmagesty(OpenFL 创始人 Joshua Granick)在 OpenFL 社区论坛上的这篇文章中的回答:

...最干净的解决方案是在包含在 SWF 库之后的类路径中拥有自己的format.swf.lite.MovieClip类。 在那里进行您需要的修改...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM