Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 30-12-2004, 11:46   #1 (permalink)
bim
 
Benutzerbild von at21125
 
Registriert seit: Sep 2004
Ort: Wien
Beiträge: 21
Question warum funktioniert join() nicht?

Ich definiere ein Array mit

var arr_runningclips:Array = newArray();

Dann hab ich eine Funktion, die alle laufenden mcs in dieses Array schreibt, bzw schreiben soll:

function reallyAllMC(mc){
for (var i in mc){
if(typeof(mc[i]=="movieclip"){
mc[i].oldFrame=mc[i]._currentframe;
arr_runningclips[i] = mc[i]._target;
trace(arr_runningclips[i]);
reallyAllMC(mc[i]);
}}}

Das trace in dieser Funktion bringt mir alle gerade laufenden mcs

Wenn ich aber ins trace (arr_runningclips.join()) schreib, bringt er nix. noch nichtmal ein undefined.

Was mach ich falsch? Ziel ist einfach eine Liste der laufenden mcs mit , getrennt.

lg
Birgit

PS: ich hab diese Funktion aus diesem Forum. Sieht tut zwar eigentlich was ich möchte, aber ich versteht die Zeile "mc[i].oldFrame=mc[i]._currentframe;" nicht ganz, die aber unbedingt nötig ist, das sonst nicht funktioniert. Vielleicht kann mir die Zeile wer erklären?
at21125 ist offline   Mit Zitat antworten
Alt 30-12-2004, 11:52   #2 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
die zeile ist nur nötig, wenn du den film anhalten willst und ihn später fortführen.
also alle mc´s anhalten und sich merken, wo man ist.

wegen deines joins...setz mal den trace mit dem join() NACH der for-schleife...

also for-schleife und trace mal danach mit join und nicht schon währenddessen



greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 30-12-2004, 11:57   #3 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
also beim typeof gibt es einen syntaxfehler da gibt es eine "(" zu viel.....

wenn ich das nun richtig sehe... ist das eine rekursive funktion welche sich durch die movieclip hierarchie arbeitet... wozu nun mc[i].oldFrame = mc[i]._currentframe; gut ist.. kann man mit dem code alleine nicht sagen... es wird halt einfach direkt im mc eine var "oldFrame" gesetzt in der das aktuelle frame (zum zeitpunkt der rekursion) fest gehalten wird...

im array arr_runningclips werden alle target der einzelnen mc's gespeichert... wenn du diese nun ausgeben möchtest..... reicht am ende ein arr_runningclips.toString()... dann sind sie durch "," getrennt für das brauchst kein join....
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 30-12-2004, 12:03   #4 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Wink mOin

guck mal hier, vieleicht hilft dir das ja weiter:

1. ne vernünftige schleife ertsellen
2. trace plus myArr.join();, damit d ma siehst was passiert

PHP-Code:
var myArr = new Array();
var 
breakpoint 10;
var 
rein = function () {
    for (var 
0i<breakpointi++) {
        
myArr[i] = ["mc_"+i];
        if (
== breakpoint-1) {
            
trace(myArr);
            
trace(myArr.join(" # "));
            
trace(myArr.join(" - "));
            
trace(myArr.join(" --> "));
        }
    }
};
rein(); 
*fang einfach so an, ich denke 'copy & paste' bring nicht wirklich viel, da der lerneffect fast völlig auf der strecke bleibt.

wenn du willst, helf ich dir gerne, step by step, weiter?

btw: wie scrawer schon sagt join 0der split is unnötig
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shortybmc (30-12-2004 um 12:59 Uhr)
shorty ist offline   Mit Zitat antworten
Alt 30-12-2004, 13:02   #5 (permalink)
bim
 
Benutzerbild von at21125
 
Registriert seit: Sep 2004
Ort: Wien
Beiträge: 21
Unhappy danke für die schnellen antworten

den trace nach der schleife zu machen hab ich schon probiert. auch ohne erfolg.
was mich wundert ist, dass ich einen einzelnen Eintrag des arrays (also zb arr_runningclips[3]) schon auslesen kann?!

Ich hab das Array jetzt auch probiert mit der Schleife zu durchlaufen, da bekomme ich dann jedes mal undefined. Kann es sein, dass das was mit der Gültigkeit des Arrays zu tun hat?
Ich definiere das Array im ersten Frame der Hauptzeitleiste. Die Funktion reallyAllMC startet dann per Klick auf einen mc. Per Klick auf einen zweiten MC sollen die Daten des Arrays dann angezeigt werden.

Geändert von at21125 (30-12-2004 um 13:20 Uhr)
at21125 ist offline   Mit Zitat antworten
Alt 30-12-2004, 13:06   #6 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
arghh...ich seh eben grad was...trace mal den typen von i in deiner schleife...
du hast ja ne for-in schleife...
das ist doch gar kein typ number mehr das i, oder irr ich mich da..*koppkratz* überleg*
trace mal bitte innerhalb der schleife

ActionScript:
  1. trace(' I = '+i+'  |||  typ ist :'+(typeof(i)));


und sag mal, was da rum kommt


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 30-12-2004, 13:24   #7 (permalink)
bim
 
Benutzerbild von at21125
 
Registriert seit: Sep 2004
Ort: Wien
Beiträge: 21
na, das steht dann string!

und wenn ich direkt auf einen Wert zugreife, steht dann der Instanzname des jeweiligen mc dort.
at21125 ist offline   Mit Zitat antworten
Alt 30-12-2004, 13:50   #8 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
i muss aber ne number sein und kein string...
du schaffst damit assoziative arrays und kein numerisches array.
das kannst du leider nicht ganz tracen..*g*


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 30-12-2004, 14:12   #9 (permalink)
bim
 
Benutzerbild von at21125
 
Registriert seit: Sep 2004
Ort: Wien
Beiträge: 21
Thumbs up ab bussl *grins*

Danke, das mit dem assoziativen Array war genau der richtige Tipp. Mit einer for in Schleife krieg ich die Daten wieder raus - suuuuuuuuuper!!!
at21125 ist offline   Mit Zitat antworten
Alt 30-12-2004, 14:17   #10 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
gerne geschehen..oder aber du nimmst keine for-in in dem fall, sondern eine normale for bzw. while..

greetz

kelor
kelor 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:22 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele