2

我正在将一个大型 FLA AS3 项目转换为 Canvas/JS。我有一个大型的 AS 文件外部文件夹结构和许多与类相关的库对象。

我已将 FLA 转换为画布模式,但找不到将 JS 文件关联到对象的方法。我已经看到有关在框架脚本中包含 JS 的在线示例,但我真的希望找到一种方法来处理外部文件和库对象关联。

我将不胜感激任何有关如何完成的方向或示例。

谢谢

4

3 回答 3

4

我所做的是将我所有的 JS 实用程序添加到来自 Animate 的动态 html 中,appenChild如下所示:

框架脚本:

function loadScript(url) {
    var body = document.getElementsByTagName('body')[0];
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = url;
    body.appendChild(script);
}

loadScript('assets/app/myUtilities.js');
loadScript('assets/libs/coolTool.js');
loadScript('etc..');

s = this; //to have access to the stage

并像这样从外部 JS访问舞台:

s.my_movieclip.addEventListener("click", fl_MouseClickHandler.bind(s));

function fl_MouseClickHandler() {
    console.log('I want banana!');
}

我看到的是,不幸的是,似乎不可能在 Animate 中使用画布动态实例化库中的对象,我认为最好的解决方案是在时间轴上准备您的视图。

另一方面,JS 提供了很多功能(例如从您的代码中调用 Bootstrap 对话框模式)。

于 2016-05-26T00:15:52.043 回答
0

我花了一些时间并设法更好地了解它的工作原理,并创建了一个简单的示例,将具有外部 AS 文件和面向对象结构的 Flash Actionscript 项目转换为具有类似文件结构的 Animate CC Canvas 和 Javascript 文件项目。

您可以在https://github.com/xims/X-simple-flahtml查看它

于 2016-04-26T23:38:50.573 回答
0

CreateJS 可以为您做到这一点(PreloadJS 库)。

var queue = new createjs.LoadQueue();
queue.loadManifest([
    "auxiliary.js",
    "main.js"
]);

于 2021-03-18T08:15:16.260 回答