Domanda

Ho letto un sacco di oggi circa la dichiarazione con le prestazioni, la leggibilità e cose del genere, ma non sono ancora sicuro se dovrei o non dovrei usare l'istruzione with in AS3.

Utilizzando l'istruzione with sembra lo stesso come la creazione di var locale che avrebbe portato il riferimento. Qualcuno può fornire informazioni dettagliate informazioni su questo argomento?

È stato utile?

Soluzione

Bene, dai miei punti di riferimento personali dichiarazione con () in realtà ha mostrato fino ad essere un po 'po' più lento. Questo non è un grosso problema a meno che non si sta cercando di spremere fino all'ultima oncia di prestazioni dal vostro filmato. Lo stesso si potrebbe dire per fare cicli for contro le variabili al posto delle costanti, o di cicli while vs cicli for. A meno che non aggravare questi cicli in un sacco di iterazioni non si ha realmente bisogno di essere interessati con esso.

Per quanto riguarda la leggibilità del codice, penso che fa per un look più pulito usando con (). Tutto si riduce alla codifica stile. L'unica volta che ho davvero usare l'istruzione with () è con dire un obiettivo noto. Diciamo che avete il vostro gestore di eventi del mouse la selezione degli oggetti su click, e l'impostazione come currentObject. È quindi possibile avere una funzione che fa qualcosa di simile

with(currentObject)
{
 x = 100;
 y = 100;
 alpha = 0.5;
}

Certo si poteva fare altri modi, ma come ho detto. Si tratta di codifica stile. Gli unici risparmi ho davvero vedere con questo metodo si accorciano le battiture vs facendo currentObject.x = 100; currentObject.y = 100;

Altri suggerimenti

Credo che, il problema più grande di with che non è compilare in tempo selezionata. Eventuali errori saranno scoperte solo in fase di esecuzione. Ma aiuta a codice pulito, ed io un po 'come è. Basta sapere che cosa stai facendo, e può essere utile.

with è uno zucchero sintattico puro.

Performance-saggio, non è chiaramente un'ottimizzazione. Ho eseguito un ciclo un paio di volte e sembra essere ancora più lento del solito attributi di accesso.

In termini di leggibilità, non sono nemmeno sicuro che ci sia un guadagno. Vorrei davvero preferisce usare di Grant Skinner proposta . Ma c'è un caso in cui potrebbe essere utile:. with (event.target as MovieClip), perché richiederebbe una dichiarazione di variabile intermedia altrimenti

Conclusione:. Nella maggior parte dei casi, non ne fanno uso

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