KineticJS教程(8)

KineticJS教程(8)

 8.動畫

動畫就是一幀幀的畫面按照時間間隔顯示出來,Kinetic給咱們提供了一個舞臺對象的onFrame方法,用這個方法能夠綁定一個動畫方法,咱們要顯示的動畫的每一幀畫面就是在這個方法中完成繪製的。html

其中,這個方法接受一個對象frame爲參數,此參數對象包含兩個屬性,一個是frame.time,表示當前幀是動畫開始後的毫秒數,另外一個屬性是 frame.timeDiff,表示的是當前幀與上一幀之間的時間毫秒差。當前幀因該是什麼形態就是根據這兩個事件來判斷的。繪製出當前幀後,注意要調用一下動畫所在的層的draw,將當前幀圖像顯示到屏幕上。post

<script>動畫

stage.onFrame(function(frame) {spa

// update position.net

// draw layerhtm

});對象

</script>教程

以下代碼顯示了一個左右擺動的圓形事件

<!DOCTYPE html>ip

<html>

<head>

<meta charset=「UTF-8″>

<title>KineticJS</title>

<script src=「../kinetic.js」></script>

</head>

<body>

<script>

window.onload = function() {

var stage = new Kinetic.Stage({

container : 「container」,

width : 600,

height : 400

});

var layer = new Kinetic.Layer();

 

var config = {

x : 300,

y : 200,

radius : 30,

fill : 「red」,

stroke : 「black」,

strokeWidth : 5

};

 

var circle = new Kinetic.Circle(config);

 

layer.add(circle);

stage.add(layer);

 

var amplitude = 150;

var period = 2000;

 

var centerX = stage.getWidth() / 2;

//動畫幀定義方法

stage.onFrame(function(frame) {

circle

.setX(amplitude

* Math.sin(frame.time * 2 * Math.PI / period)

+ centerX);

layer.draw();

});

//動畫開始

stage.start();

//動畫中止

//stage.stop();

};

</script>

<div id=「container」></div>

</body>

</html>

動畫的開始與中止是用舞臺對象的start與stop方法實現的。

<script>

var stage = new Kinetic.Stage({

 

});

//動畫開始

stage.start();

//動畫中止

stage.stop();

</script>

相關文章
相關標籤/搜索