2013-12-18 2 views
1

Ровно месяц назад я столкнулся с этой проблемой 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"); 
}); 

На этот раз я проверил дважды, и там не является дополнительным аргументом для функции обратного вызова.

ответ

1

Учитывая, что вы вставляете журналы, обработчик mouseton, как представляется, иногда называют параметрами, иногда без них. Чтобы справиться с этим, вы можете использовать функцию с дополнительными параметрами:

var img = s.image("$url", x, y, image.width/2, image.height/2); 
img.mouseover(([p1, p2, p3, p4]) { 
    print("hover in"); 
}); 

Вышеупомянутый обратный вызов теперь обрабатывает вызовы от 0 до 4 параметров.

+0

Черт ... это сделал трюк ... Это очень странно ... Спасибо вам, Агин Александер! –