Canvas 结构集(';src';,url)不工作,但setSrc(url)工作
我有这两行代码-Canvas 结构集(';src';,url)不工作,但setSrc(url)工作,canvas,fabricjs,Canvas,Fabricjs,我有这两行代码- canvas.item(0).set('src',url);canvas.renderAll() canvas.item(0).setSrc(url);canvas.renderAll() 因此,存在一个已存在的画布,其中在第0层加载了一个图像。所以当我使用Solution1时,它应该会改变图像。但它没有反映。当我尝试console.log(canvas.item(0))时,它在对象数组中显示设置为src属性的url,但它从不反映。然后,当我使用Solution2时,它就起作用
canvas.item(0).set('src',url);canvas.renderAll()代码>
canvas.item(0).setSrc(url);canvas.renderAll()代码>
console.log(canvas.item(0))
时,它在对象数组中显示设置为src
属性的url
,但它从不反映。然后,当我使用Solution2时,它就起作用了。但即便如此,它还是有马车。我必须运行Solution2两次&然后它就会显示出来。有什么问题吗?用于更改接受回调的image对象的源,然后渲染画布。因此,您无需再次调用setSrc
演示
var canvas=newfabric.canvas('editorCanvas'{
背景颜色:“白色”,
宽度:300,
身高:300
});
var图像对象;
fabric.Image.fromURL('https://picsum.photos/200/200,函数(img){
img.set({width:200,height:200,scaleX:1,scaleY:1})
imageObject=img;
canvas.add(img);
},{交叉原点:'annonymous'});
var i=0;
函数changeSrc(){
var url='1〕https://picsum.photos/200/200?random='+++i;
setSrc(url,函数(){
canvas.requestRenderal();
},{交叉原点:'annonymous'})
}
画布{
边框:1px实心;
}
变更
添加过滤器
用于更改图像对象的源,该对象接受回调,从而呈现画布。因此,您无需再次调用setSrc
演示
var canvas=newfabric.canvas('editorCanvas'{
背景颜色:“白色”,
宽度:300,
身高:300
});
var图像对象;
fabric.Image.fromURL('https://picsum.photos/200/200,函数(img){
img.set({width:200,height:200,scaleX:1,scaleY:1})
imageObject=img;
canvas.add(img);
},{交叉原点:'annonymous'});
var i=0;
函数changeSrc(){
var url='1〕https://picsum.photos/200/200?random='+++i;
setSrc(url,函数(){
canvas.requestRenderal();
},{交叉原点:'annonymous'})
}
画布{
边框:1px实心;
}
变更
添加过滤器
谢谢你,伙计。。回调是关键。。在“DEMO”中的callbackSince内移位了canvas.renderAll()
,两个图像URL除了随机因素外是相同的,代码实际上不会反映画布上的图像更改,直到添加img.set('dirty',true)代码>内部回调。谢谢你。。回调是关键。。在“DEMO”中的callbackSince内移位了canvas.renderAll()
,两个图像URL除了随机因素外是相同的,代码实际上不会反映画布上的图像更改,直到添加img.set('dirty',true)代码>内部回调。