> Extraño no es. > Afortunadamente, todo funciona como debe funcionar. Cuando haces la > asignacion de al método "bajarVolumen" lo que asignas es eso, una > referencia al método, pero no al objeto que la posee. No la > sobreescribes (¿?). Lo extraño es que quieras hacer eso. Creo que te > has > hecho un lío creyendo que apuntando a la función, ejecutarás la función > de ESA instancia, y no. Cuando la ejecutas te devuelve, diligentemente > ella, el valor de "this" en su nuevo ámbito, es decir el objeto que > "posee" la función, en tu caso el mute_mc. > > Punteros para que os quiero...
Yo no diría afortunadamente :). Los ámbitos tal y como los ha tratado siempre Flash siempre han sido muy oscuros. El hecho de que el ámbito de una función cambie dependiendo de desde donde se llame es algo que da cierta flexibilidad, sin duda, pero en la gran mayoría de los casos introduce errores y malentendidos. Vamos, no hay proyecto donde no utilice mil veces el Delegate para evitar ese comportamiento. De hecho en AS3 por fin han introducido los famosos "closures" y ya no ocurre esto. El ámbito de un método/función lo determina donde está definido, no de donde se llama. Para mi tiene bastante más lógica así... Es una opinión personal en todo caso ;) Un saludo, Joseba Alonso Pérez www.sidedev.net www.5dms.com ----------------------------------------------------- ASNativos www.5dms.com subscripciones/desubscripciones http://asnativos.5dms.com -----------------------------------------------------

