当多个Transformer
对象存储在数组中时,on()
事件仅返回transAry
(transAry[transAry.length-1]
)的最后一个对象。
for (var i = 0; i < transAry.length; i++){
var trans = transAry[i];
trans.on('transformer dragmove', function(){
console.log(trans.x(), trans.y(), trans.scaleX(), trans.scaleY());
});
}
在这种情况下,Transformer
通过鼠标操作移动或调整每个对象的大小时,console.log
仅显示transAry
(transAry[transAry.length-1]
)的最后一个对象。
我想触发数组Transformer
对象的所有事件,但是我不知道该怎么做。
这似乎不是Konva.js特有的问题,但是我想这是因为我不了解JavaScript异步处理如何正常工作。
我认为,当您使用var时,on()是一个回调函数,因此当on()run时,for循环完成并且变量trans =数组中的最后一个元素=> console.log总是返回数组中的最后一个元素
我想解决这个问题,您可以使用let代替var
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句