El problema reside en los escuchadores, al crearlo no tengo ningún problema y funciona bien, pero al removerlo no puedo hacerlo utilizando el nombre del objeto, lo hice utilizando la matriz de escuchadores y funciono perfectamente, es ahí dónde no entiendo, toda la literatura y ayuda que encontré indica que al referirme al escuchador por su nombre, debe removerse correctamente.
Por favor revisen el código ¿Algo hice mal? o ¿Alguien a notado este problema anteriormente?
Por último comento que el ejercicio lo hice tanto en MX2004 pro y Flash 8, obteniendo los mismos resultados.
Código :
if( cargado == undefined){ mover = function(cual,cuanto){ nvapos = this[cual]._x + cuanto; this[cual]._x = nvapos; trace(cual); } habilitar = function(nombre,control){ var teclado:Object = new Object(); teclado.onKeyDown = function() { tecla = Key.getCode(); if ( tecla == 39){ mover(nombre,10); } else if(tecla == 37){ mover(nombre,-10); } } if(control == 0){ Key.addListener(teclado); largo=Key._listeners; trace(largo); } else if(control == 1){ // Aqui es el problema si quiero usar el nombre de objeto no funciona, así //como esta funciona perfectamente anular=Key.removeListener(largo[0]); trace(control + " "+ anular); } } } cargado = true; MovieClip.prototype.onRollOver = function(){ habilitar(this._name,0); } MovieClip.prototype.onRollOut = function(){ habilitar(this._name,1); trace("mouse fuera"); } stop();
Gracias de antemano, saludos.
Rafael