Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-04-2004, 12:03   #1 (permalink)
Halbzeitflasher
 
Benutzerbild von lepimax
 
Registriert seit: Jul 2001
Ort: München
Beiträge: 823
Question array veschluckt bei funktionsaufruf ???

hi,
hab geade ehwig nach nem fehler gesucht und bin dann auf was komisches gestossen.

wenn man einer funktion als parameter 2 array mitgibt wird der eine an den anderen angehängt !!

ist doch komisch.

ist das ein bag?

testest mal selber :
ActionScript:
  1. testArr = new Array();
  2. for (var i = 0; i<5; i++) {
  3.         testArr.push("test"+i);
  4. }
  5. testArr2 = new Array();
  6. for (var i = 0; i<5; i++) {
  7.         testArr.push("dada"+i);
  8. }
  9. function raus(ar1,ar2){
  10.    
  11. trace (ar1);
  12. trace (ar1.length);
  13. trace (ar2);
  14. trace (ar2.length);
  15. }
  16.  
  17. raus(testArr,testArr2);
__________________
have a nice day
lepimax ist offline   Mit Zitat antworten
Alt 09-04-2004, 12:10   #2 (permalink)
Halbzeitflasher
 
Benutzerbild von lepimax
 
Registriert seit: Jul 2001
Ort: München
Beiträge: 823
die sache wird noch seltsamer wenn man eine sting variable dazwischen hängt, dann ist die länge des arrays die anz. der stringbuschstaben.:
ActionScript:
  1. testArr = new Array();
  2. for (var i = 0; i<5; i++) {
  3.         testArr.push("test"+i);
  4. }
  5. testArr2 = new Array();
  6. for (var i = 0; i<5; i++) {
  7.         testArr.push("dada"+i);
  8. }
  9. function raus(ar1,ar2){
  10.    
  11. trace ("dummy  "+dummy);
  12. trace ("ar1  "+ar1);
  13. trace ("ar1.length    "+ar1.length);
  14. trace ("ar2  "+ar2);
  15. trace ("ar2.length  "+ar2.length);
  16. }
  17. dummy = "12Buchstaben";
  18. raus(testArr,dummy,testArr2);
__________________
have a nice day
lepimax ist offline   Mit Zitat antworten
Alt 09-04-2004, 12:19   #3 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
ähm, entschuldige bitte, aber das ist kein Bug sondern vertippt...

Du erzeugst zwar zwei Arrays (testArr und testArr2), aber du pushst immer in das gleiche Array...

Die Übergabe von beliebigen Objekten an Funktionen funktioniert ansonsten nämlich reibungslos...


Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 09-04-2004, 12:23   #4 (permalink)
Halbzeitflasher
 
Benutzerbild von lepimax
 
Registriert seit: Jul 2001
Ort: München
Beiträge: 823
hast teilweise recht, ein wenig vertippt, aber teste das hier mal:

ActionScript:
  1. testArr = new Array();
  2. for (var i = 0; i<5; i++) {
  3.         testArr.push("test"+i);
  4. }
  5. testArr2 = new Array();
  6. for (var i = 0; i<5; i++) {
  7.         testArr2.push("dada"+i);
  8. }
  9. function raus(ar1,ar2){
  10.    
  11. trace ("dummy  "+dummy);
  12. trace ("ar1  "+ar1);
  13. trace ("ar1.length    "+ar1.length);
  14. trace ("ar2  "+ar2);
  15. trace ("ar2.length  "+ar2.length);
  16. }
  17. dummy = "12Buchstaben";
  18. raus(testArr,dummy,testArr2);

ich währe froh wenn ich unrecht haben....

gruß
__________________
have a nice day

Geändert von lepimax (09-04-2004 um 12:26 Uhr)
lepimax ist offline   Mit Zitat antworten
Alt 09-04-2004, 14:05   #5 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Ich kenne da einen geheimen Trick, um das Array wieder zum Vorschein zu bringen: Trace einfach mal den dritten Parameter deiner Funktion, z.B. mit trace(arguments[2])

Abrakadabra

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 09-04-2004, 15:46   #6 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
bokel hat Recht, alle übergebenen Parameter landen in einem Array "arguments".

Ich weiß nicht recht, was du eigentlich zeigen willst...du übergibst drei Parameter an eine Funktion, die zwei erwartet.

Dummy ist deswegen in der Funktion bekannt, weil diese Variable im gleichen Scope wie die Funktion liegt und nicht lokal definiert ist.

length ist eine Eigenschaft, die es bei Strings sowohl als auch bei Arrays gibt, das ist also auch nichts ungewöhnliches.
Und da du dummy als zweiten Parameter übergibst, landet der Wert von dummy auch in ar2...

Sorry, aber das ist kein ungewöhnliches Verhalten.

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 10-04-2004, 09:01   #7 (permalink)
Halbzeitflasher
 
Benutzerbild von lepimax
 
Registriert seit: Jul 2001
Ort: München
Beiträge: 823
ok, war ein blöder tippfehler - war gestern nicht mein tag.
*brettvormKopfTag*
sorry.

mods fühlt euch frei diesen tread zu löschen - thx.

Gruß
Lepi
__________________
have a nice day

Geändert von lepimax (10-04-2004 um 09:05 Uhr)
lepimax 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 12:31 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele