2016-02-26 5 views
1

Я использую tween.0.6.2 и столкнулся с проблемой.Tween.js не вызывает функцию вызова после добавления EventListener

Follwing фрагмент кода (взятый из the tween.js Getting Started site и немного упрощенным) работает точно так же, как он должен:

  createjs.Tween.get(circle) 
       .to({x: 400}, 1000, createjs.Ease.getPowInOut(4)) 
       .call(function() {console.log("tween finished");}); 

После твин был закончен (круг был перемещен в х = 400) функцию передается call выполняется.

Но после того, как обработчик событий был добавлен так:

  createjs.Tween.get(circle) 
       .to({x: 400}, 1000, createjs.Ease.getPowInOut(4)) 
       .addEventListener("change", function() {console.log("tween changed");}) 
       .call(function() {console.log("tween finished");}); 

функция передается call не выполняется больше.

Любые идеи?

ответ

-1

addEventListener не является функцией tween-js. Все связанные функции, такие как to и call Предполагая, что нужно вернуть this объект (пример Tween) и addEventListener возвращает undefined. Итак, последний call() будет звонить по телефону undefined.

Вы должны использовать onUpdate вместо addEventListener:

  createjs.Tween.get(circle) 
       .to({x: 400}, 1000, createjs.Ease.getPowInOut(4)) 
       .onUpdate(function() {console.log("tween changed");}) 
       .call(function() {console.log("tween finished");}); 
+1

Я полагаю, что tween.js API претерпел ряд серьезных изменений в последнее время. Начиная с tween.0.6.2 больше нет функции onUpdate (см. Http://www.createjs.com/docs/tweenjs/classes/Tween.html). Кроме того, addEventListener не возвратил undefined в моем первом примере. –

+0

Да, моя вина. Я использую другую версию анимации. –

1

Для всех спотыкаясь это: после некоторого экспериментирования, я узнал, что это работает:

  createjs.Tween.get(circle) 
       .to({x: 400}, 1000, createjs.Ease.getPowInOut(4)) 
       .call(function() {console.log("tween finished");}) 
       .addEventListener("change", function() {console.log("tween changed");}) 

Как представляется, вызов call должно предшествовать вызову addEventListener.

EDIT:

Все еще не работает так, как ожидается: в приведенном выше примере, прослушиватель события вызывается еще раз после функции передается call выполняется (!).

Идеи относительно того, почему это происходит до сих пор приветствуют ...

 Смежные вопросы

  • Нет связанных вопросов^_^