Trovo poco familiare lavorare con l'assegnazione di array di ActionScript tramite la metodologia di riferimento. Capisco cosa sta facendo, ma in qualche modo trovo confuso gestire molti array con questa metodologia. Esiste un modo semplice per lavorare con gli array ActionScript in cui l'assegnazione dell'array è VALUE anziché REFERENCE? Ad esempio, se voglio assegnare oneArray
a twoArray
senza collegare i due array l'uno all'altro per sempre in futuro, come farlo? Funzionerebbe?ActionScript: come assegnare gli array in base a VALUE anziché REFERENCE?
var oneArray:Array = new Array("a", "b", "c");
var twoArray:Array(3);
for (ii=0; ii<3; ii++) { twoArray[ii] = oneArray[ii]; }
L'intento è quello di essere in grado di cambiare twoArray
senza vedere un cambiamento nella oneArray
.
Qualche consiglio su come assegnare gli array in base a VALUE anziché REFERENCE?
---- per riferimento ----
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Array.html
assegnazione all'array avviene in riferimento anziché al valore. Quando si assegna una variabile di array a un'altra variabile di array, entrambe si riferiscono allo stesso array:
var oneArray:Array = new Array("a", "b", "c");
var twoArray:Array = oneArray; // Both array variables refer to the same array.
twoArray[0] = "z";
trace(oneArray); // Output: z,b,c.
Ho appena notato la risposta di taskinoor, per inseguirti verso la mia direzione, hehe, 'concat' è in realtà il doppio più veloce di' slice' in termini di clonazione di una matrice. :) – xLite
Grazie! Ho studiato un po 'e ho trovato alcuni link a supporto del tuo reclamo. Eccone uno: http://agit8.turbulent.ca/bwp/2008/08/flash-as3-optimization-fastest-way-to-copy-an-array/ – ggkmath
questo farà solo una copia superficiale. per una copia profonda di un array è necessario utilizzare ByteArray per gli array di clonazione in AS3: http: //help.adobe.com/it_IT/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7ee7.html – TheDarkIn1978