2014-01-14 2 views
0

코드 시작 부분에 틱 이벤트를 설정합니다. 이 3 행은 작동합니다.Javascript - easelJS - AllListener를 제거하는 방법

createjs.Ticker.addEventListener("tick", handleTick); 
createjs.Ticker.useRAF = true; 
createjs.Ticker.setFPS(30); 

코드 끝에있는 수신기를 제거하고 싶습니다. 나는 그런 식으로 전화를 시도했지만 작동하지 않습니다 :

createjs.Ticker.removeAllListeners(); 

파이어 폭스 콘솔이 날 createjs.Ticker.removeAllListeners is not a function 말한다. 그래서 나는 다른 곳으로 전환하려고 :

createjs.Ticker.removeEventListener("tick", handleTick); 

그리고 그것은 또한 작동하지 않습니다. 나는 그것을 어떻게 사용하는지 정말로 모른다. 공식 웹 사이트에서는 displayObject와 함께 사용하지만 버튼이나 다른 링크에 링크를 만들지는 않습니다.

http://www.createjs.com/Docs/EaselJS/classes/Ticker.html#method_removeAllEventListeners

누군가가 나를 제발 해결하는 데 도움이 될 수 있을까요?

감사

편집 : 나는 easelJS 버전 0.7.1을 사용하고 있지만 내 문제가 easelJS의 이전 버전 (0.5)을 사용하여 튜토리얼에 연결되어 생각합니다. 누구든지 그것을 easelJS의 최신 버전에 적용하는 방법을 알고 있습니까? 감사

편집 2 :이 링크 (http://www.createjs.com/Docs/EaselJS/modules/EaselJS.html) easelJS의 최신 버전 createjs.Ticker.addEventListener("tick", handleTick);의 활용에 찾았지만 createjs.Ticker에서 호출 수신기를 제거하는 방법에 대한 어떠한 문서도 없다, 난 여전히 해결책을 찾고 있어요

답변

2

나는 당신이 찾고있는 기능이 생각 :

createjs.Ticker.removeAllEventListeners(); // Note the function name 

두 번째 예제는 작동합니다, 당신은 범위를 유지하는 기능을 프록시하지 않는 가정. Ticker는 EventDispatcher이며 여기에 정의 된 모든 메서드를 상속받습니다. http://www.createjs.com/Docs/EaselJS/classes/EventDispatcher.html

evt.remove()은 함수에 대한 참조가없는 경우 가장 좋은 방법입니다.

중요한주의 사항 : Ticker에서 모든 이벤트 리스너를 제거하면 트위닝이 작동하지 않을 수 있습니다. Tween은 초기화 될 때 리스너를 추가합니다. 가장 좋은 옵션은 리스너를 완전히 제거하는 두 번째 옵션입니다. 여전히 작동시키지 못한다면, 더 많은 코드를 자유롭게 게시 할 수 있으며, 노력하고 도와 드리겠습니다.

건배.

+0

내 문제를 해결하고 작동 방식을 더 잘 이해할 수 있도록 도와 주셔서 감사합니다. – wytes

+0

evt.remove()의 evt는 addEventListener를 통해 추가 된 리스너 함수의 매개 변수 evt입니까? 그렇다면, 저를 위해 그것은 듣고있는 증권 시세 표시기를 멈추지 않습니다. 나는 또한 '진드기'듣기를 끝내지 못하는 on/off 문법을 시도했다. 어떤 힌트? –

+0

evt.remove와 evt.off는'on()'메소드와 함께 사용해야합니다. 이 바로 가기는 추가 기능을 추가하는 이벤트 처리기의 래퍼를 만듭니다. 'off()'를 사용하려면,'on()'에 의해 생성 된 래퍼를 저장해야하는데, 실제 함수 핸들러 대신에 사용합니다. – Lanny

0

나는 //를 번갈아 사용합니다. evt.remove(); 요구. 전역 var를 사용하여 이것을 true로 설정하면 evt.remove() 함수를 호출합니다. 그러나 최선의 방법이 아닐 수도 있습니다.