Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07-11-2003, 11:10   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2001
Ort: Wien
Beiträge: 286
arrays kopieren

hi!
hab da ein kleines problem. ich habe einen originalarray mit
werten, den ich kopiere und dann aus der kopie mittels splice
einzelne werte entferne. wenn keine werte mehr drinnen sind,
soll er die kopie wieder auffüllen mit den werten aus dem
origionalarray. das problem an der sache ist, das - immer wenn
ich mit splice aus der kopie was entferne - er die werte auch aus
dem original entfernt und somit meine original referenzwerte weg
sind! warum ist das bloß so!?!?
so schaus aus:

swforiginal = new Array();
swforiginal = ['s01.swf', 's02.swf', 's03.swf', 's04.swf', 's05.swf'];
currentswf = new Array();
currentswf = swforiginal;

function pick() {
if(currentswf.length == 0 {
currentswf = swforiginal;
}
zuf = random(currentswf.length);
wahl = currentswf[zuf];
currentswf.splice(zuf, 1);
return wahl;
}

wenn ich diese funktion ausführe passt das zwar- aber er entfernt
eben auch die werte aus swforiginal, was er ja eigentlich
nicht sollte!!!

danke für eure hilfe!
zig
ziggy ist offline   Mit Zitat antworten
Alt 07-11-2003, 11:37   #2 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Beiträge: 518
currentswf = swforiginal;-----<verweist ja auch drauf!!!

füll dein currentswf lieber wieder so:
ActionScript:
  1. if(currentswf.length == 0 {
  2.  
  3. for(var i=0;i<=swforiginal.length-1;i++){
  4. currentswf.push(swforiginal[i])
  5. }
  6. }

[ungetestet sollte aber so funtzen]
und??

grütze
hnes

Geändert von hnes (07-11-2003 um 11:39 Uhr)
hnes ist offline   Mit Zitat antworten
Alt 07-11-2003, 11:43   #3 (permalink)
::flash5user::
 
Benutzerbild von Heidsch
 
Registriert seit: Aug 2001
Ort: Berlin
Beiträge: 497
du kopierst dein original nicht, sondern setzt lediglich eine instanz
zum origanal.

Bsp: currentswf = swforiginal;

wenn du jetzt werte in der instanz änderst, dann ändert sich natürlich
auch dein original.

versuchs mal anders...

ActionScript:
  1. // Funktion zum kopieren
  2. copyArray=function(source,destination){
  3.     for(i=0;i<source.length;i++){
  4.         destination.push(source[i]);
  5.     }
  6. }
  7. // Arrays definieren
  8. sourceArray=[1,2,3,4,5];
  9. destinationArray=[];
  10. // Funktion aufrufen (Quelle, Ziel)
  11. copyArray(sourceArray,destinationArray);
  12.  
  13. stop();
__________________
mfg :::heidsch:::

visit heidsch.de
visit oprspedition.de
visit megalogistik.de

letzter Besuch 15.07.2006 | Finde leider kaum noch Zeit zum flashen
Heidsch ist offline   Mit Zitat antworten
Alt 07-11-2003, 11:46   #4 (permalink)
Neuer User
 
Registriert seit: Sep 2001
Ort: Wien
Beiträge: 286
ok danke- hab zwar jetzt keine zeit mehr, werds aber bald austeten. finds aber immer noch komisch das er mein
original löscht mit meiner methode. normale variablen kann ich
ja so auch kopieren ohne das das original verändert wird
wenn ich an der kopie was ändere...

naja- thanx anyway!
zig
ziggy ist offline   Mit Zitat antworten
Alt 07-11-2003, 11:49   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2001
Ort: Wien
Beiträge: 286
ach ich mach nur eine neue referenz damit?? gut zu wissen!
jetzt sollte es klappen! danke euch beiden!

zig
ziggy 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 13:05 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele