Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-06-2007, 18:47   #1 (permalink)
°_°
 
Benutzerbild von der maddin
 
Registriert seit: May 2003
Ort: berlin
Beiträge: 197
Question array :: nachhilfe

hallo zusammmen
ich habe mal ein grundsätzliches verständnisproblem mit arrays
ich bastel gerade soetwas wie ein undo für einen fragebogen und habe alle antworten in einem array gespeichert.
jetzt dachte ich ich könnte den jeweiligen zustand des arrays wiederum in einem array abspeichern so das ich jeweils immer zum letzten zustand des array zurück springen kann.
ich habe also flugs ein weiteres array gestiftet namens history in welches das erste array immer nach jeder antwort gepusht wird.
also ungefähr so (pseudocode): history[[antworten],[antworten],[antworten],[antworten]]
bloed ist nur , das wenn ich den antworten array verändere, alle antwortarrays verändert sind.
ich wollte aber nur den jeweiligen Zustand des arrays abspeichern.
ich hoffe ich habe das problem einigermaßen verständlich erklärt.
hat jemand eine idee wie das gehen könnte?
oder muss ich das array als string im history array ablegen? und dann bei einem undoschritt wieder in ein array verwandeln?
jede idee ist willkommen
gruss
maddin
der maddin ist offline   Mit Zitat antworten
Alt 13-06-2007, 19:46   #2 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Reicht dir das schon?

PHP-Code:
var a:Array = [];
var 
c:String "hallo";
a.push);

var 
b:Array = a.slice();
b[0] = "werner";

tracea[0] + " " b[0] ); 
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 13-06-2007, 23:31   #3 (permalink)
lernwillig
 
Benutzerbild von Bugfixer
 
Registriert seit: May 2004
Ort: Berlin
Beiträge: 221
So ganz klar ist mir zwar noch nicht was du machen willst, aber kann es sein, dass du keine richtigen kopien von deinem array erzeugst?
Mit array2 = array1; erzeugst du nur eine referenz auf array1.

Siehe folgendes beispiel:

ActionScript:
  1. var oldArray = [1,2,3];
  2. var newArray = oldArray;
  3. oldArray[0] = 4;
  4.  
  5. trace(newArray)// Trace: 4,2,3
  6.  

Richtig wäre folgendes:
ActionScript:
  1. newArray = oldArray.concat();

Hoffe das hilft dir weiter.

Grüsse
Fabian
__________________
Schon mal F1 gedrückt? ;)
Bugfixer ist offline   Mit Zitat antworten
Alt 14-06-2007, 07:17   #4 (permalink)
°_°
 
Benutzerbild von der maddin
 
Registriert seit: May 2003
Ort: berlin
Beiträge: 197
Thumbs up

newArray = oldArray.concat();
super..
hat geklappt

|___|
| % |]
|___| zum Dank ein virtuelles Bier
der maddin ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 11:16 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele