就在一个月前,我遇到了这个问题Closure call with mismatched arguments: function 'call'和js interop。
现在我对SnapSVG库有同样的问题。我现在正在与JsInterop结合使用它。今天我尝试使用mouseover函数,我得到了相同的异常。
但是当我悬停SVG元素时,我的函数会被触发四次:
hover in
hover in
hover in
hover in
Breaking on exception: Closure call with mismatched arguments: function 'call'
我试过了:
var img = s.image("$url", x, y, image.width/2, image.height/2);
js.FunctionProxy hover = new js.FunctionProxy(() {
print("hover in");
});
img.mouseover(hover);
和
var img = s.image("$url", x, y, image.width/2, image.height/2);
img.mouseover(() {
print("hover in");
});
这次我检查了两次,回调函数没有额外的参数。
答案 0 :(得分:1)
考虑到您粘贴的日志,有时会使用参数调用鼠标悬停处理程序。要处理它,您可以使用带有可选参数的函数:
var img = s.image("$url", x, y, image.width/2, image.height/2);
img.mouseover(([p1, p2, p3, p4]) {
print("hover in");
});
上面的回调现在处理0到4个参数的调用。