2015年4月7日 星期二

CreateJS系列教學-第二篇 樂透轉轉機

大家好,我是奶綠茶
熟悉了 Adobe Flash CC2014 匯出成 html5 CreateJS 教學後
接著我們再來練習把 JS 的程式碼寫成 Flash CC2014 裡
直接匯出成 html5 格式,製作速度之快,是其他軟體比不上的呀。
請到老師的好友, Titan 老師, 把之前製作過的 Flash 樂透轉轉機
轉成 html5 格式,讓桌機和手機同時支援

用 Flash CC2014 開啟之前製作好的 fla 檔
原本是 AS 文件,要轉存成 html5 文件
選擇上方工具列:命令 / 從 AS3 文件格式轉換為 HTML5 Canvas


存好新檔後,可以看到屬性面試顯示為 HTML5 Canvas 文件
此時在時間軸寫的程式碼是 JS 而不是 AS 喔


在這個範列下,需要再增加二段 JS 程式碼
1. 在影格 1 加入點擊後開始播放
this.stop();
// 方法1,  用 on 的方法偵聽事件
this.on("click",function(){
// 用 on 的方法,此時 this 指向會是自己
console.log("on",this);
this.gotoAndPlay(1);

});


// 方法2,用 addEventListener 方法偵聽事件
this.addEventListener("click",function(){
// 用 addEventLister 方法, this 指向會指到 Window
console.log( "addEventListener",this );

});



二者的差別在 this 的 scope 指向,奶老師個人編好使用 on 的方法來偵聽
因為只要打二個字(整個就是懶)。
提醒一下,在本機開發時 Chrome 會檔掉 click 事件,跳出這樣的訊件
Uncaught An error has occurred. This is most likely due to security restrictions on reading canvas pixel data with local or cross-domain images.
因為我們引用的 js 是來自 code.createjs.com 。
決解辦法就是丟到網路上即可,或是改用 Firefox 即可本機開發。


2. 轉轉機的結果
我們把要顯示的文字元件放在 txt_mc 元件裡,該元件放了三個影格。
只要加上亂數跳到指定的影格即可
var frame = Math.floor( Math.random() * 2 + 0.5);
this.txt_mc.gotoAndStop(frame);
this.play();
HTML5 文件下,影格是從 0 開始喔。



製作動畫的方式就和以往一樣,沒有任何改變,不需要再另外重新學習
有些小地方還是要提醒一下,並不是所有的功能都支援轉換
1. 本來在 AS 格式寫的程式碼,轉換為 HTML5 格式後,會自動被注解
FlashCC2014 只轉換動畫部份,程式還是需要重寫為 JS 格式。
2. 不支援 Filter 和混色模式。


3.顏色效果只支援 Alpha 。


4. 時間軸影格是從 0 開始(AS格式是從 1 開始)
EaselJS 中的影格編號從 0 開始,而非 1。例如,這會影響 gotoAndStop 和 gotoAndPlay 呼叫。

線上Demo
http://www.milkmidi.com/demo/201504_flashcc_createjs_part2/

祝大家學習愉快。
完整的 Source 下載
https://github.com/milkmidi/createjs_tutorial/tree/master/02_capsuleToy

轉載請註明出處