2016-04-23 220 views
1

我正在将大型FLA AS3项目转换为Canvas/JS。 我有一个很大的外部文件夹结构的AS文件和许多与类关联的库对象。在HTML5 canvas模式下使用Adobe Animate CC与外部JavaScript文件

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

我会很感激任何方向或如何做的例子。

谢谢

回答

0

我花了一些时间和管理,以更好地了解它是如何工作的,并创造了外部转换的Flash ActionScript项目中的文件和面向对象的结构成动画CC帆布的一个简单的例子, JavaScript文件项目具有类似的文件结构。

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

+1

我不明白它是如何工作的,但它的工作原理。我认为一个问题是,您必须修改生成的html以添加您的includes和js片段,每次您从Animate重新编译时,您会如何执行?你使用工具来做到这一点吗? – jck

3

查看我要做的就是将我所有的JS实用程序的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中使用canvas动态地从库中实例化对象,我认为最好的解决方案是在时间轴上准备您的视图。

在另一方面,JS提供大量的功能(例如呼叫从您的代码引导对话框情态动词)。

+0

此外,如果您必须加载多个带有依赖关系的JS(如jQuery),我建议您只加载一个包含[LABjs](http://labjs.com/documentation.php)的文件'launcher.js'和使用$ LAB – jck

+0

将文件末尾的所有库添加到文件中。嗨,谢谢您的输入。但是,我必须告诉你,确实可以在Animate中动态创建库中的对象:var myClip = new lib.MyClipsNameInTheLibrary();' – Danyright

+0

Thanks @Danyright。它只有在对象已经在舞台上时才起作用,然后在舞台上显示新创建的对象的方式是什么? – jck

相关问题