Flash, ActionScript 3: utilizando GET / propiedades establecidas para obtener los valores de otras clases crea mucho código duplicado puede diferente `?

StackOverflow https://stackoverflow.com/questions/3173293

Pregunta

Estoy utilizando get y set en mi código AS3 para editar valores de otro tipo (porque las variables son compartidas) No me gusta poner stage.sharedVar.isScrabble en mi código cada vez para cambiar una variable así que utiliza get / funciones set

ver abajo

private function get isScrabble(){return stage.sharedVar.isScrabble;} 
private function set isScrabble(val){stage.sharedVar.isScrabble = val;}  

private function get superGrid(){return stage.sharedVar.superGrid} 
private function set superGrid(val){stage.sharedVar.superGrid = val;} 

private function get gridSize(){return stage.sharedVar.gridSize} 
private function set gridSize(val){stage.sharedVar.gridSize = val}

private function get blokDefaultWidth(){return stage.sharedVar.blokDefaultWidth} 
private function set blokDefaultWidth(val){stage.sharedVar.blokDefaultWidth = val}

private function get blokDefaultHeight(){return stage.sharedVar.blokDefaultHeight} 
private function set blokDefaultHeight(val){stage.sharedVar.blokDefaultHeight = val}

a medida que van ve que tiene una gran cantidad de código duplicado cada vez que el "retorno stage.sharedVar." y el "stage.sharedVar." + + el valor "= val" está constantemente viniendo de atrás.

Me preguntaba ¿hay alguna otra manera de crear estos Get / juegos? algo así como:?

private function get variable1(){getValue("hisOwnFunctionName")} 
private function set variable1(val){setValue("hisOwnFunctionName")}

y así sucesivamente ??

gracias, Matthy

¿Fue útil?

Solución

Si entiendo su pregunta, lo que desea es obtener y establecer varias propiedades de un objeto. Dependiendo de su situación que podría intentar:

private function setProperty(name:Object,value:Object):void {
    stage.sharedVar[name]=value;
}
private function getProperty(name:Object):Object {
    return stage.sharedVar[name];
}
private function example():void {
    setProperty("foo","bar");
    trace(getProperty("foo")); //prints: bar
}

Estas funciones le permitirá configurar el acceso y las propiedades que desea, y usted no tendrá que seguir cambiando las funciones. Lo que significa es que si cambia superred que ser otra cosa, no se puede simplemente cambiar la función, usted tiene que cambiar todo el mundo utiliza el get y setProperty. Pero sí quiere decir que usted no tiene que seguir escribiendo nuevas funciones.

Espero que esto ayude.

Otros consejos

Si estás en Flex Builder, descargar el kit de herramientas estándar web desde http: // download. eclipse.org/releases/galileo/ y utiliza las "fragmentos" para escribir estos para ti.

De lo contrario, si realmente necesita hacer esto dentro del programa en tiempo de ejecución, se puede hacer una clase de contenedor proxy para hacer todo tipo de cosas: http://ltslashgt.com/2008/01/24/proxy-class-as3/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top