Javascript Fabric.js添加图像顺序
我试图严格地将图像添加到画布,但图像是随机添加的 有什么问题吗 这是我的简单代码Javascript Fabric.js添加图像顺序,javascript,canvas,fabricjs,Javascript,Canvas,Fabricjs,我试图严格地将图像添加到画布,但图像是随机添加的 有什么问题吗 这是我的简单代码 var canvas = new fabric.Canvas("preview"); var imgs = ['bgBottom','bgTop', 'bgLevel', 'bgCircle']; for (var i=0; i<imgs.length;i++){ var url = imgs[i]+'.png'; fabric.Image.fr
var canvas = new fabric.Canvas("preview");
var imgs = ['bgBottom','bgTop', 'bgLevel', 'bgCircle'];
for (var i=0; i<imgs.length;i++){
var url = imgs[i]+'.png';
fabric.Image.fromURL(url, function (oImg) {
canvas.add(oImg)
})
}
var canvas=newfabric.canvas(“预览”);
变量imgs=['bgBottom'、'bgTop'、'bgLevel'、'bglycle'];
对于(var i=0;ifabric.Image.fromURL
在后台加载图像,并在图像加载完成后运行您传递给它的匿名函数,该函数将图像添加到画布中。浏览器加载图像的顺序将有所不同,您不能依赖于它的特定顺序
查看显示加载图像数组并确保它们按设置的顺序显示的内容。这是通过在加载图像之前将图像添加到画布来实现的;只有在图像可供显示之前,图像才会渲染
来自JSFIDLE的代码:
var SelfLoadingImage = fabric.util.createClass(fabric.Object, {
initialize: function(src) {
this.image = new Image();
this.image.src = src;
this.image.onload = (function() {
this.width = this.image.width;
this.height = this.image.height;
this.loaded = true;
this.setCoords();
this.fire('image:loaded');
canvas.renderAll();
}).bind(this);
},
_render: function(ctx)
{
if (this.loaded) {
ctx.drawImage(this.image, -this.width / 2, -this.height / 2);
}
}
});
var canvas = new fabric.Canvas("preview");
var imgs = [
'http://icons.iconarchive.com/icons/fasticon/ifunny/128/dog-icon.png', // dog
'http://33.media.tumblr.com/avatar_14ee6ada72a4_128.png', // cat
'http://upload.wikimedia.org/wikipedia/commons/b/bc/Nuvola_devices_mouse.png' // mouse
];
for (var i=0; i<imgs.length;i++){
var url = imgs[i];
var img = new SelfLoadingImage(url);
canvas.add(img);
}
var SelfLoadingImage=fabric.util.createClass(fabric.Object{
初始化:函数(src){
this.image=新图像();
this.image.src=src;
this.image.onload=(函数(){
this.width=this.image.width;
this.height=this.image.height;
this.loaded=true;
这是setCoords();
这个.fire('image:loaded');
canvas.renderAll();
}).约束(本);
},
_渲染:函数(ctx)
{
如果(已加载此文件){
ctx.drawImage(this.image,-this.width/2,-this.height/2);
}
}
});
var canvas=newfabric.canvas(“预览”);
var imgs=[
'http://icons.iconarchive.com/icons/fasticon/ifunny/128/dog-icon.png“,//狗
'http://33.media.tumblr.com/avatar_14ee6ada72a4_128.png“,//猫
'http://upload.wikimedia.org/wikipedia/commons/b/bc/Nuvola_devices_mouse.png“//鼠标
];
对于(var i=0;i