2014-11-26 1 views
0

Быстрый вопрос, У меня есть простая функция, которая создает некоторые поверхности и анимирует их посредством определения функции «оживить», которая будет называться каждым движком prerender. Это ведет себя так, как должно, однако, удаление этого прослушивателя на prerender с помощью Engine.removeListener не работает.Javascript и Famo.us: Engine.removeListener() не работает

function _createCube(){ 
    //create of some surfaces and modifiers 
    Engine.on('prerender',animate); 


    surface.on('click',function(){ 
    _stopAnimation.call(this); 
    } 
} 

function _stopAnimation(){ 
    Engine.removeListener('prerender',animate); 
} 

ответ

0

Это действительно работает, но у вас может быть ошибка в коде. В следующем примере кода показан простой рабочий пример с использованием removeListener

Working jsBin Example Here Нажмите на прилавке, чтобы начать и остановить слушателя.

var mainContext = Engine.createContext(); 

    var surface = new Surface({ 
    content: 'Famo.us Count ', 
    properties:{ 
     cursor: 'pointer' 
    } 
    }); 

    mainContext.add(surface); 
    var counter = 0; 

    function animate() { 
    counter+=1; 
    surface.setContent('Famo.us Count ' + counter); 
    } 

    function _create(){ 


    surface.on('click',function(){ 
     if (!surface.started) { 
     Engine.on('prerender',animate); 
     surface.started = true; 
     } else { 
     _stopAnimation.call(this); 
     surface.started = false; 
     } 
    }); 
    } 

    function _stopAnimation(){ 
    Engine.removeListener('prerender',animate); 
    } 

    _create.call(this);