Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-11-2004, 20:10   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2003
Beiträge: 19
Question array erzeugen

wieso geht das nicht?

das geht!
PHP-Code:
function test() {
    
_global.arr_ts_bg = new Array();
    for (
i=0i<ai++) {
        
_global.arr_ts_bg[i] = new Array();
        for (
j=0j<bj++) {
            
arr_ts_bg[i][j] = new Object();
            
arr_ts_bg[i][j].status 0;
        }
    }
}
test(); 
das geht nicht wieso?

PHP-Code:
function test(arr) {
    
_global.arr = new Array();
    for (
i=0i<ai++) {
        
_global.arr[i] = new Array();
        for (
j=0j<bj++) {
            
arr[i][j] = new Object();
            
arr[i][j].status 0;
        }
    }
}
test(arr_ts_bg); 
cu
eXo
llexoduz ist offline   Mit Zitat antworten
Alt 20-11-2004, 20:20   #2 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
ActionScript:
  1. function test(arr) {
  2.     _global[arr] = new Array();
  3.     for (i = 0; i < a; i++) {
  4.         _global.arr[i] = new Array();
  5.         for (j = 0; j < b; j++) {
  6.             arr[i][j] = new Object();
  7.             arr[i][j].status = 0;
  8.         }
  9.     }
  10. }
  11. test("arr_ts_bg");
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 21-11-2004, 06:54   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2003
Beiträge: 19
geht nicht
Zitat:
function test(arr) {
trace(arr);
_global[arr] = new Array();
for (i = 0; i < a; i++) {
_global.arr[i] = new Array();
for (j = 0; j < b; j++) {
arr[i][j] = new Object();
arr[i][j].status = 0;
}
}
}
test("arr_ts_bg");
PHP-Code:
trace(arr_ts_bg[0][0].status); 
ergebnis = undefined

Geändert von llexoduz (21-11-2004 um 06:57 Uhr)
llexoduz ist offline   Mit Zitat antworten
Alt 21-11-2004, 08:14   #4 (permalink)
carpe noctem
 
Registriert seit: Aug 2004
Beiträge: 114
das funktioniert:
ActionScript:
  1. function test(arr) {
  2.     a=5;
  3.     b=5;
  4.     for (i=0; i<a; i++) {
  5.         arr[i] = new Array();
  6.         for (j=0; j<b; j++) {
  7.             arr[i][j] = new Object();
  8.             arr[i][j].status = 0;
  9.         }
  10.     }
  11. }
  12. arr_ts_bg = new Array();
  13. test(arr_ts_bg);
  14.  
  15. trace(arr_ts_bg[0][0].status);

das nicht:
ActionScript:
  1. function test(arr) {
  2.     a=5;
  3.     b=5;
  4.     arr = new Array();
  5.     for (i=0; i<a; i++) {
  6.         arr[i] = new Array();
  7.         for (j=0; j<b; j++) {
  8.             arr[i][j] = new Object();
  9.             arr[i][j].status = 0;
  10.         }
  11.     }
  12. }
  13. test(arr_ts_bg);
  14.  
  15. trace(arr_ts_bg[0][0].status);

und folgende Erklärung könnte ich dazu liefern:
call by value, bzw. call by reference übergabe bei Funktionen
Wenn man eine normale Variable an eine Funktion übergibt geschieht das durch call by value, was bedeutet, dass nur der Wert der Variablen übergeben wird. Wird die Varable also in der Funktion verändert, so wird die übergebene Variable außerhalb der Funktion nicht verändert. Dazu ein kleines Beispiel:
ActionScript:
  1. function test(t) {
  2.     t=3;
  3.     trace("variable in der Funktion: "+t);
  4. }
  5. zahl = 2;
  6. test(zahl);
  7. trace("variable außerhalb der Funktion: "+zahl);
Wird allerdings ein Array übergeben, so ist dies eine andere Art der Speicherung und wird daher durch call by reference übergeben. Das bedeutet, dass nicht nur die Werte des Arrays, sondern der Array selbst (eine Referenz auf den Array) übergeben wird. Somit wird der Array außerhalb der Funktion mitverändert, so wie in folgendem Beispiel:
ActionScript:
  1. function test(t) {
  2.     t[0]=3;
  3.     trace("variable in der Funktion: "+t[0]);
  4. }
  5. testArray = new Array();
  6. testArray[0] = 2;
  7. test(testArray);
  8. trace("variable außerhalb der Funktion: "+testArray[0]);

Das ist das was ich dazu beitragen kann. Könnte natürlich auch alles falsch sein, was ich grade erklärt habe, aber das ist im Moment die logische Erklärung für mich, die ich von anderen Programmiersprachen her kenne.

gruß
__________________
... to be continued ...
xyz.xyz.xyz ist offline   Mit Zitat antworten
Alt 21-11-2004, 09:06   #5 (permalink)
nobody is perfect
 
Benutzerbild von Decrone
 
Registriert seit: Apr 2002
Ort: Bremen
Beiträge: 3.049
Hi xyz.xyz.xyz...nice wie immer

sag mal was Progst. Du den noch alles so?

bye
__________________
FF Unterstützen! Erste Hilfe! häufig gestellten Fragen
...................... ............... ................................
Decrone ist offline   Mit Zitat antworten
Alt 21-11-2004, 09:23   #6 (permalink)
Neuer User
 
Registriert seit: Aug 2003
Beiträge: 19
so danke!
PHP-Code:
function test(t) {
    for (
i=0i<5i++) {
        
t[i] = new Array();
        for (
j=0j<5j++) {
            
t[i][j] = new Object();
            
t[i][j].status 1;
            
trace("variable in der Funktion: "+t[0][0].status);
        }
    }
}
testArray = new Array();
test(testArray); 
und es geht thx noch mal
llexoduz 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 10:49 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele