Muy buenas...

a ver si alguien vé qué falla aquí, porque creo que estoy  
desarrollando cegera al bug (un clásico cuando llevas 4 horas mirando  
el mismo fichero...)

Tengo una aplicación (bastante simple, por otra parte) con un sistema  
de control de teclas casero:

class com.foo.bar.SoftKeys {
        var default_keys = null;

        // Array to store a history of key assignments
        var key_history:Array = [];

        // Key controller
        var key_controller:Object = null;

        function SoftKeys(){
                trace( "Creating SoftKeys instance..." );
                softkey = this;
        }
        function toString(){
                return "SoftKeys";
        }
        function on_softkey_1(){
                trace( "SoftKeys.on_softkey_1()" );
        }
        function on_softkey_2(){
                trace( "SoftKeys.on_softkey_2()" );
        }
        private function init_softkey_controller(){
                trace( softkey + ".init_softkey_controller" );
                if(!key_controller){
                        key_controller = new Object();
                } else {
                        return;
                }
                key_controller.onKeyDown = function(){
                        var pressed_key = Key.getCode();
                        switch ( pressed_key ) {
                                case "soft1":
                                        // Soft key 1
                                        trace( "SoftKeys.onKeyDown - soft1" );
                                        trace( on_softkey_1 );
                                        on_softkey_1();
                                        break;
                                case "soft2":
                                        // Soft key 2
                                        trace( "SoftKeys.onKeyDown - soft2" );
                                        trace( on_softkey_2 );
                                        on_softkey_2();
                                        break;
                                default:
                                        break;
                        }
                }
                Key.addListener(key_controller);
        }
        public function set_soft_keys(labels:Array,functions:Array){
                init_softkey_controller();
                trace( "SoftKeys.set_soft_keys - Storing soft keys in history" 
);
                key_history.push([labels,functions]);
                fscommand2("SetSoftKeys",labels[0],labels[1]);
                this.on_softkey_1 = functions[0];
                this.on_softkey_2 = functions[1];
        }
        public function reset_soft_keys(){
                trace( "SoftKeys.reset_soft_keys - Retrieving previous keys 
from  
history" );
                var previous_keys = key_history.pop();
                set_soft_keys(previous_keys[0],previous_keys[1]);
        }
}

Tengo una instancia de esta clase en la aplicación, y cuando pulso  
las teclas correspondientes se me dispara el trace 
( "SoftKeys.onKeyDown - softX" ), pero trace(on_softkey_X) me  
devuelve undefined, y jamás se llama a la función on_softkey_X.

¿Alguna idea de qué puede estar fallando?

Miles de millones de gracias por adelantado...


--
Ale Muñoz
http://sofanaranja.com
http://bomberstudios.com



-----------------------------------------------------
ASNativos
www.5dms.com
subscripciones/desubscripciones
http://asnativos.5dms.com
-----------------------------------------------------

Responder a