Javascript и Famo.us: Engine.removeListener() не работает
Быстрый вопрос, у меня есть простая функция, которая создает некоторые поверхности и анимирует их, определяя функцию "animate", которая будет вызываться при каждом предварительном просмотре Engine. Это ведет себя как следует, однако удаление этого слушателя при предварительном просмотре с 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);
}
1 ответ
Это работает, но у вас может быть ошибка в вашем коде. В следующем примере кода показан простой рабочий пример использования removeListener
Пример работы с jsBin. Нажмите на счетчик, чтобы запустить и остановить слушателя.
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);