Javascript KineticJS如何设置图像动画
我正在尝试使用KineticJS在屏幕上移动图像,但是我一直没有得到一个函数错误。图像显示很好,但它一直说imageObj.move不是一个函数,我不知道为什么。我对javascript和KineticJS有点陌生,所以我可能只是犯了一个非常基本的错误,所以欢迎提供一些帮助。谢谢Javascript KineticJS如何设置图像动画,javascript,animation,kineticjs,Javascript,Animation,Kineticjs,我正在尝试使用KineticJS在屏幕上移动图像,但是我一直没有得到一个函数错误。图像显示很好,但它一直说imageObj.move不是一个函数,我不知道为什么。我对javascript和KineticJS有点陌生,所以我可能只是犯了一个非常基本的错误,所以欢迎提供一些帮助。谢谢 window.onload = function(){ //init function var stage = new Kinetic.Stage("container", 600, 600); var fluffyI
window.onload = function(){ //init function
var stage = new Kinetic.Stage("container", 600, 600);
var fluffyImgLayer = new Kinetic.Layer();
var imageObj = new Image();
imageObj.onload = function(){
imageF = new Kinetic.Image({
x: 0,
y: 250,
image: imageObj,
});
fluffyImgLayer.add(imageF);
stage.add(fluffyImgLayer);
}
imageObj.src = "Flutter_Fluffy_100.png";
stage.onFrame(function(frame){
console.log("fired")
imageObj.move(10,10);
fluffyImgLayer.draw();
});
var period = 2000;
stage.start();
}
你可以做这样的事情,然后用它来做:
imageObj.x += 3;
imageObj.y += 3;
您需要在imageF前面添加var:
var imageF = new Kinetic.image({
看看:
获取的错误是因为未定义“移动到任何位置”。您可以创建移动函数并允许对象使用它。或者,您可以创建如下函数:
function moveMyThing(myObj, xchange, ychange)
{
myObj.x += xchange;
myObj.y += ychange;
}
然后用以下词语来称呼它:
moveMyThing(imageObj, 3, 3);
如果一切正常的话,KineticJS的刷新速度往往在60帧左右,所以这3个版本实际上相当快。您还将考虑检查是否是更新动作逻辑的时间。最好把它们分开
例:
为了解释这种跳跃性,你可以在运动之间进行调整。你可以做这样的事情,然后处理它:
imageObj.x += 3;
imageObj.y += 3;
您需要在imageF前面添加var:
var imageF = new Kinetic.image({
看看:
获取的错误是因为未定义“移动到任何位置”。您可以创建移动函数并允许对象使用它。或者,您可以创建如下函数:
function moveMyThing(myObj, xchange, ychange)
{
myObj.x += xchange;
myObj.y += ychange;
}
然后用以下词语来称呼它:
moveMyThing(imageObj, 3, 3);
如果一切正常的话,KineticJS的刷新速度往往在60帧左右,所以这3个版本实际上相当快。您还将考虑检查是否是更新动作逻辑的时间。最好把它们分开
例:
为了解释跳跃性,你可以在运动之间切换。实际上,为了回答你的问题,问题是你试图在图像对象上使用KineticJS方法,而不是在动能.image对象上。改用这个:
图像f.move10,10 实际上,要回答您的问题,问题是您试图在image对象上使用KineticJS方法,而不是在Kinetic.image对象上。改用这个:
图像f.move10,10 如果有帮助的话,如果我尝试调用imageF.move10,10,我会得到一个错误,即imageF未定义。如果有帮助的话,如果我尝试调用imageF.move10,10,我会得到一个错误,即imageF未定义。实际上,如果你想减少重画的次数,你可以使用如下的节流方法:layer.setThrottle10;这将限制绘制速度到每秒10帧实际上,如果您想减少重画次数,可以使用如下限制方法限制层绘制速度:layer.setThrottle10;这将使绘制速度降低到每秒10帧