注意 此貼 為個人邊“開荒”邊寫,所以不保證就是最佳做法,也難免有錯誤! 正式教程會在后續開始更新
當你導出第一個canvas后,你會在保存fla的文件夾里 (每個項目默認位置)看到 如下文件,(請先隨便導入一些音樂,和圖片再發布)

我們打開game.html 代碼如下
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>test</title> <script src="http://code.createjs.com/easeljs-0.8.1.min.js"></script> <script src="http://code.createjs.com/tweenjs-0.6.1.min.js"></script> <script src="http://code.createjs.com/movieclip-0.8.1.min.js"></script> <script src="http://code.createjs.com/preloadjs-0.6.1.min.js"></script> <script src="http://code.createjs.com/soundjs-0.6.1.min.js"></script> <script src="test.js"></script> <script> var canvas, stage, exportRoot; function init() { canvas = document.getElementById("canvas"); images = images||{}; var loader = new createjs.LoadQueue(false); loader.installPlugin(createjs.Sound); loader.addEventListener("fileload", handleFileLoad); loader.addEventListener("complete", handleComplete); loader.loadManifest(lib.properties.manifest); } function handleFileLoad(evt) { if (evt.item.type == "image") { images[evt.item.id] = evt.result; } } function handleComplete(evt) { exportRoot = new lib.test(); stage = new createjs.Stage(canvas); stage.addChild(exportRoot); stage.update(); createjs.Ticker.setFPS(lib.properties.fps); createjs.Ticker.addEventListener("tick", stage); } function playSound(id, loop) { createjs.Sound.play(id, createjs.Sound.INTERRUPT_EARLY, 0, 0, loop); } </script> </head> <body onload="init();" style="background-color:#D4D4D4"> <canvas id="canvas" width="550" height="400" style="background-color:#FFFFFF"></canvas> </body> </html>
首先script 可以看到加載了幾個js, 如果你不明白可以不用理會。
但是他么都是用的絕對地址,國內使用這個地址 某些時候會比較慢,所以建議在 FLASH軟件里面 設置 發布設置

這樣發布后 html 文件 的js 引入就變成
<script src="libs/easeljs-0.8.1.min.js"></script> <script src="libs/tweenjs-0.6.1.min.js"></script> <script src="libs/movieclip-0.8.1.min.js"></script> <script src="libs/preloadjs-0.6.1.min.js"></script> <script src="libs/soundjs-0.6.1.min.js"></script> <script src="test.js"></script>
================好了 廢話了這么多 下面講重點==============
導出的 代碼中可以看到聲明了這3個“東西”
var canvas, stage, exportRoot; 這篇帖子我們先說 exportRoot
大家在FLASH CC CANVAS里面 所有命名過的元件、this.聲明的變量、this.聲明函數都將“在” exportRoot 里面(不懂什么叫this 聲明的 那也繼續一步一步往下看)。 這為我們在 html下寫js 調用這些"玩意兒"提供了方便。
比如 你在FLASH CC 里面的根時間軸上有一個元件叫 btnKS ,那么你可以在html里面這樣寫js 來調用它
exportRoot.btnKS
exportRoot.btnKS.on("click", function(e)
{
exportRoot.gotoAndStop(2)
//你甚至可以 使用 greensock的 js 版本來控制他們運動
TweenMax.to(exportRoot.MCA,1,{alpha:0,scaleX:2,scaleY:2,onComplete:function()
{
exportRoot.removeChild(exportRoot.btnKS)
}
})
})
又比如 你在FLASH CC 里面的跟時間軸上 寫js
this.htmlF=function(_ss) { console.log(_ss) }
那么你在HTML中執行這個函數。也是這樣寫
exportRoot.htmlF("這是來自HTML JS的消息")
再比如你在FLASH CC 里面的根時間軸上有元件MCA, MCA內部有元件son0,以及MCA的時間軸上有以下代碼
this.mcAF=function(_ss) { console.log(_ss) }
那么你在HTML中應該這樣調用
exportRoot.mcA.son0 //以及 exportRoot.mcA.mcAF("這也是來自HTML的消息")
好了上面講了調用元件、函數,那么變量的調用在此:
如果FLASH CC里寫的JS變量要在HTML中被調用,那么就不能再寫 var a=1,應該寫成this.a=1
調用方式同上
順帶說下FLASH CC 生成的HTML中JS代碼的 兩個事件:看函數名就明白了:
handleFileLoad
handleComplete
加載進度 :
function handleFileLoad(evt) {
if (evt.item.type == "image") { images[evt.item.id] = evt.result; }
//下面,其實就是api了,自己查閱api即可,如果不知道怎么查,還有一個快捷辦法就是在flash CC 里面打代碼 會有代碼提示
console.log(loader._numItems,loader._numItemsLoaded)
}
注意 loader 的聲明 在init(),所以要將loader 聲明到全局 或者 將 handleFileLoad函數寫進init()中 即可。更加詳細的加載進程將在后面的章節詳細說明
