1

我正在使用织物 js 进行画布动画,并创建了 id 为“画布”的画布,然后将图像放入其中并将左侧位置设置为零。它工作正常,但动画功能不起作用。

请帮我。

我的代码:

HTML:

<canvas id="canvas" width="990" height="285">
    This text is displayed if your browser 
    does not support HTML5 Canvas.  
</canvas>

javascript:

var canvas = new fabric.Canvas('canvas');

var image = new Image();
image.src = 'images/body.png';

var bugBody = fabric.Image.fromURL(image.src, function (oImg) {
    canvas.add(oImg);
        oImg.set('left',0)
});

bugBody.animate('left', 200, {
    onChange: canvas.renderAll.bind(canvas)
});

感谢您。

4

1 回答 1

5

我认为发生这种情况是因为您的图像未完全加载。
因此,您可以将动画代码放在回调函数中。
检查这个 jsfiddle: http: //jsfiddle.net/9x9Qc/
像这样:

var srcImg = "http://fabricjs.com/lib/pug.jpg";

// canvas
var canvas = new fabric.Canvas('c');

fabric.Image.fromURL(srcImg, function (oImg) {
    canvas.add(oImg);
    oImg.set('left',0);
    oImg.set('top', 100);
    oImg.scale(.25);
    canvas.renderAll();

    // and then, we can animate the image    
    oImg.animate('left', 200, {
        onChange: canvas.renderAll.bind(canvas)
    });
});
于 2013-02-27T11:51:30.763 回答