以Flash使用者的使用經驗來看,這一套是最接近Flash的使用方式;
使用語法與習慣接近,適合老Flasher來進入html5的領域… XD
其實還有一套叫 flashJS,來不及看,所以先用看過的…
stage
stage包Canvas,DisplayObject被addChild到stage中,stage不斷的在update()或tick()中更新內容;
canvas = document.getElementById("canvas的ID");
stage = new Stage(canvas);
類似Flash中的DisplayObject類別
Container:AS3是DisplayObjectContainer,把各DisplayObject再包起來再群組的工具
Bitmap:放圖片和影片用的
BitmapAnimation:放連結圖檔動畫(SpriteSheet)用的
Text:文字
Shape:放graphics畫出來的物件用的。
stage.addChild( DisplayObject )
類似Flash中MovieClip的方法類別,以下兩種皆不是DisplayObject,需要置放進對應的容器才能夠被addChild到stage中
graphics
SpriteSheet
和Flash AS3的比對來學習>就動畫的使用上來比對說明
Flash中使用MovieClip來做動畫
使用play()、gotoAndStop()、gotoAndPlay()的方式來控制MovieClip
EnselJS使用SpriteSheet來製作類似MovieClip的物件,
也使用gotoAndPlay()與gotoAndPlay()相同的語法,
讓原本使用flash的使用者覺得親切
範例1,使用SpriteSheet來製作一個人物走路的動畫、使用BitmapAnimation做一個容器將SpriteSheet置入,再用addChild的方式加載進stage中
在gotoAndPlay()這方法中使用呼叫frame數的方法來控制 SpriteSheet
http://192.168.43.33/~apple/EaselJStest/aniTest1.html
使用Zoe來匯出連續圖檔
動畫全放在主場景上
使用grahpic元件,拉足影格 > 這種作法可能也可以轉出用AS創作的動畫
範例2,使用function tick來不斷的改變元件的屬性,如同flash的onEnterFrame、setInterval等事件與方法。
http://192.168.43.33/~apple/EaselJStest/aniTest2.html
範例3,加入判斷式來改變運行方向
http://192.168.43.33/~apple/EaselJStest/aniTest3.html
範例4,在gotoAndPlay()這方法中使用flag的呼叫的方式來控制SpriteSheet,SpriteSheet對應的寫法。
使用DisplayObject中scaleX的方式來做物件的鏡射
http://192.168.43.33/~apple/EaselJStest/aniTest4.html
主語法:
Tween.get( 對像, {loop:true/false})
.to({屬性: 值} , 時間/豪秒)
.wait(時間/豪秒)
http://192.168.43.33/~apple/html5Test/aniTest5.html
和Flash AS3的比對來學習>就互動的方式來比對說明
滑鼠的控制Event:onPress、onRelease、onClick、onMouseOver、onMouseUp
DisplayObject.事件類別 = function(){ }
http://192.168.43.33/~apple/html5Test/ctrlTest/helloWorld.html
btn.onPress = showText
showText=function(){…}
http://192.168.43.33/~apple/html5Test/test05.html
for迴圏
(function(target) {
bmp.onPress = function(evt) {
}
})(bmp)
EnselJS
http://easeljs.com/
TweenJS
http://tweenjs.com/
動畫方式
http://blogs.msdn.com/b/davrous/archive/2011/07/21/html5-gaming-animating-sprites-in-canvas-with-easeljs.aspx
EaselJS新手上路
http://blog.eddie.com.tw/2011/09/10/introduction-to-easeljs/
件者Grant Skinner
http://gskinner.com/blog
Zoe
http://easeljs.com/zoe.html