Flash, ActionScript 3: utilizzando Get impostare le proprietà / per ottenere i valori da altre classi crea molto codice duplicato può diverso `?

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

Domanda

sto usando get e setter nel mio codice AS3 per modificare i valori di un altra classe (perché le variabili sono condivise) Non mi piace mettere stage.sharedVar.isScrabble nel mio codice ogni volta per cambiare una variabile in modo ho usato get / funzioni impostate

vedi sotto

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}

, come si vede furgone che ha un sacco di codice duplicato ogni volta che il "ritorno stage.sharedVar." e il "stage.sharedVar." + il valore + "= val" è costantemente in arrivo di nuovo.

mi chiedevo c'è un altro modo di creare questi get / set? qualcosa come:?

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

e così via ??

Grazie, Matthy

È stato utile?

Soluzione

Se ho capito la tua domanda, si desidera solo per ottenere e impostare più proprietà su un oggetto. A seconda della situazione si potrebbe provare:

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
}

Queste funzioni consente di impostare e l'accesso alle proprietà che si desidera, e voi non dover continuare a cambiare le funzioni. Significa che se si cambia super rete per essere qualcosa d'altro, non si può semplicemente cambiare la funzione, è necessario cambiare ovunque si utilizza il GET e setProperty. Ma significa che non c'è bisogno di continuare a scrivere nuove funzioni.

Spero che questo aiuti.

Altri suggerimenti

Se siete in Flex Builder, scaricare lo standard toolkit web da http: // download. eclipse.org/releases/galileo/ e usa "frammenti" di scrivere questi per voi.

In caso contrario, se si ha realmente bisogno di fare questo all'interno del programma in fase di esecuzione, è possibile effettuare una classe wrapper proxy per fare ogni genere di cose: http://ltslashgt.com/2008/01/24/proxy-class-as3/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top