我已成功完成在布料画布中设置背景图像
我的代码
canvas.setBackgroundImage(imageSource, canvas.renderAll.bind(canvas), {
// Fixed object misplacing issue.
top: obj.top, // object top
left: obj.left, // object left
width: obj.width * obj.scaleX,
height: obj.height * obj.scaleY,
name:'back-img',
//angle:angles,
srno:"", // removed serial number of background image. becouse serial number is undefined
});
现在我面临的问题是将角度设置为背景图像
canvas.backgroundImage.setAngle(angle)
上面的单行代码无效,因为它在完成canvas.setBackgroundImage之前执行了。
在我的理解canvas.setBackgroundImage()
是同步函数,所以我想写回调到canvas.setBackgroundImage()
注意:-i不想在canvas.setBackgroundImage
()内定义角度属性,因为我的图像位置错位。
任何帮助或建议表示赞赏 谢谢你的时间
答案 0 :(得分:0)
以下对我有用(在CB中的renderAll之后不需要“.bind”):
function setBackgroundImageCB(angle, canvas) {
canvas.backgroundImage.setAngle(angle);
canvas.renderAll(canvas);
}
这里需要“.bind”
canvas.setBackgroundImage(imageSource, setBackgroundImageCB.bind(this, angle,canvas), {
// Fixed object misplacing issue.
top: obj.top, // object top
left: obj.left, // object left
width: obj.width * obj.scaleX,
height: obj.height * obj.scaleY,
name:'back-img',
//angle:angles,
srno:"", // removed serial number of background image. because serial number is undefined
});
是的,setBackgroundImage函数中的第二个参数是回调,但没有“.bind”,它立即执行。它没有等待setBackgroundImage来执行它。