2016-04-23 471 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

相關問題