Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 30-11-2005, 16:16   #1 (permalink)
MF_
Neuer User
 
Registriert seit: May 2004
Beiträge: 98
Array speichert Objekt(-referenzen) falsch, hmm

Hi,

kann mir jemand sagen warum ich bei

PHP-Code:
function BuildMCs(anzahl:Number):Array {
    
        var 
mcs:Array = new Array;
        
            for (var 
i:Number=0i<anzahli++) {
                
                var 
currentMC:MovieClip __root.attachMovie('Intro''mcText'+i999);    
                
mcs.push(currentMC+"");
            }
            
            for (var 
i=0i<mcs.lengthi++) {trace ("controll intern"+mcs[i]);}
            return 
mcs;
    } 
PHP-Code:
controll intern
controll intern
controll intern_level0
.mcText2 
statt

PHP-Code:
controll intern_level0.mcText0
controll intern_level0
.mcText1
controll intern_level0
.mcText2 
bekomme?

Wird nur eine Kopie des Zeiger erstellt, die immer, egal was auch passiert auf die gleiche Stelle im heap zeigt?? Aber das wäre doch irgendwie dumm, oder? Bzw. wie kann ich eine value-copy anlegen, so dass jeder array-eintrack einen eigenen Zeiger enthält?

Sorry, wurde auch durch die Suche nicht wirklich schlau

gruß marco

PS: var currentMC:MovieClip hatte ich auch schon ausserhalb der Schleife deklariert, bringt auch nix
MF_ ist offline   Mit Zitat antworten
Alt 30-11-2005, 16:23   #2 (permalink)
ketten_karusell_
 
Benutzerbild von ge_flash
 
Registriert seit: Jan 2002
Ort: Duitsland geen Westen
Beiträge: 1.246
ersetze mal 999 durch getNextHighestDepth())
__________________
-----------------------------------------------
wichtige Befehle:
-format internet
-fdisk internet
ge_flash ist offline   Mit Zitat antworten
Alt 30-11-2005, 16:29   #3 (permalink)
MF_
Neuer User
 
Registriert seit: May 2004
Beiträge: 98
bringt leider nichts

gruß marco
MF_ ist offline   Mit Zitat antworten
Alt 30-11-2005, 19:11   #4 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
PHP-Code:

function BuildMCs(anzahl:Number):Array 
{
    
    var 
mcs:Array = new Array;
    
        for (var 
i:Number=0i<anzahli++) 
        {
            
            var 
currentMC:MovieClip _root.attachMovie('Intro''mcText'+i999);    
            
mcs.push(currentMC+"");
        }
        
        for (var 
i=0i<mcs.lengthi++) {trace ("controll intern"+mcs[i]);}
        return 
mcs;
}  

BuildMCs(3
Code:
controll intern_level0.mcText0
controll intern_level0.mcText1
controll intern_level0.mcText2
btw, wenn du die 999 nicht änderst, dann hast du zwar 3mc's im array,
aber wohl nicht auf der bühne...

PHP-Code:
for (i in _root){trace(i)} 
warrantmaster ist offline   Mit Zitat antworten
Alt 30-11-2005, 19:15   #5 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Bei mir tut das, zumindest die Ausgabe stimmt, aber wie schon mehrmals gesagt, die 999 ist natürlich schlecht.

Hier nochmal leicht verbessert:
PHP-Code:
function BuildMCs(anzahl:Number):Array {
    var 
mcs:Array = new Array();
    
    var 
Number;
    var 
mc MovieClip;
    
    for (
0anzahli++) {
        
mc _root.attachMovie('Intro''mcText'+ii);    
        
mcs.push(String(mc));
    }
    
    for (
0anzahli++) {
        
trace ("controll intern " mcs[i]);
    }
    
    return 
mcs;

__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 30-11-2005, 21:48   #6 (permalink)
MF_
Neuer User
 
Registriert seit: May 2004
Beiträge: 98
Smile

Hey danke für eure Antworten!

Die Version mcs.push(currentMC+""); hatte ich heut Mittag original auch schon mal, was auch funktioniert. Hatte aber das Gefühl, dass es eleganter zu lösen geht.
Auch wusste ich nicht, dass ich einfach per "String-Referenz" auf ein Objekt verweisen kann, hmm.
Worin lag jetzt genau das Problem? Wurde beim speichern in den Array eine Kopie auf den Zeigers statt auf das Objekt erstellt?
Das mit der Ebene ist klar, nehm ich dann auch noch raus.

Werde es später mal testen, muss jetzt erst mal chillen

gruß marco
MF_ 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:56 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele