请参阅下面的代码。使用以下示例:http ://www.html5canvastutorials.com/kineticjs/html5-canvas-transition-easing-functions-with-kineticjs/
我试图首先在第一层上引入一个看起来超大的图像。这是故意的。使用过渡,我想将图像缩小到适当的大小,以便它在页面加载时适合画布。这是我的第一步。我的下一步将是添加第二层并为一些文本设置动画。但是,对此的问题可以等待。我只想先集中精力解决这个问题。
到目前为止,当我在 Firefox 中运行此代码时,Firebug 调试器告诉我在显示为crosshairs.transitionTo的行上没有transitionTo函数。好吧,那里有些奇怪,因为我们知道这个函数确实存在!我看不出哪里出错了。也许有人可以看到问题所在?另外,我不确定 scale 属性的 X 和 Y 值以及它们应该是什么。我在猜测,只是想暂时将图像的大小缩小一半?请指教。
艾伦
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<style>
body {
margin: 0px;
padding: 0px;
}
#container {
overflow: hidden;
width: 312px;
height: 121px;
margin: 0px auto;
border: 1px solid black;
}
</style>
</head>
<body>
<div id="container"></div>
<script src="kinetic-v4.4.0.min.js"></script>
<script defer="defer">
var stage = new Kinetic.Stage({
container: 'container',
width: 578,
height: 200
});
var crosshairLayer = new Kinetic.Layer();
var textLayer = new Kinetic.Layer();
var imageObj1 = new Image();
imageObj1.src = 'images/crosshairs.png';
function runAnim(crosshairs)
{
crosshairs.transitionTo({
scale: {
x: .5,
y: .5
},
duration: 3,
easing: 'ease-in'
});
}
var XHair = new Kinetic.Image({
image: imageObj1,
x: stage.getWidth() / 2 - 650 / 2,
y: stage.getHeight() / 2 - 327 / 2,
width: 250,
height: 250,
draggable: false
});
crosshairLayer.add(XHair);
stage.add(crosshairLayer);
imageObj1.onload = function() {
runAnim(this);
};
</script>
</body>
</html>
我已经附上了图像本身。希望你能看到。