我在使用Firefox中的Kinetic.js獲得流暢的動畫時遇到了很多麻煩。它在Chrome和Safari中看起來很棒,甚至在IE9中看起來好像還不錯,但是Firefox卻不穩定。我嘗試使用內置的Kinetic.Animate和requestAnimationFrame,並且兩者看起來都一樣。有任何想法嗎?Kinetic.js在Firefox上很慢
<div id="container"></div>
<script>
$(function() {
var stage = new Kinetic.Stage({
container: 'container',
width: 1000,
height: 1000
});
var layer = new Kinetic.Layer();
var blackRect = new Kinetic.Rect({
x: 700,
y: 650,
width: 300,
height: 620,
fill: "black",
offset: [150, 620]
});
var colorRect = new Kinetic.Rect({
x: 300,
y: 650,
width: 300,
height: 620,
fill: "blue",
offset: [150, 620]
});
layer.add(blackRect);
layer.add(colorRect);
stage.add(layer);
function oscillate(node, time) {
var period = 5400;
var phase = 1200;
var amplitude = 1.2;
var shift = amplitude * Math.cos(phase + time * 2 * Math.PI/period);
node.setPosition(node.getX() + shift, node.getY());
}
function rotate(node, time) {
var period = 5400;
var amplitude = 0.08;
node.setRotation((amplitude * Math.sin(time * 2 * Math.PI/period)));
}
function render(time) {
layer.draw();
}
var anim = new Kinetic.Animation(function (frame) {
oscillate(blackRect, frame.time);
oscillate(colorRect, frame.time);
rotate(blackRect, frame.time);
rotate(colorRect, frame.time);
}, layer);
anim.start();
});
</script>
編輯: 這裏是上面的例子:http://jsfiddle.net/cantino/yr8Zr/
你能提供一個鏈接到住落實明白你的意思,或仍好小提琴,我們還可以編輯和測試 – Ani
當然安仁,這裏是對的jsfiddle上述代碼的鏈接。你應該在Chrome和FF中試用它。 http://jsfiddle.net/cantino/yr8Zr/ – Andrew