Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-07-2003, 11:14   #1 (permalink)
using namespace
 
Benutzerbild von artjom
 
Registriert seit: May 2002
Ort: Hamburg underground
Beiträge: 657
gibts da sowas wie wait() ??

tach!

ich habe unter root einen array:
Code:
var a=new Array();
und ich habe unter root rund 10 mc's mit foldendem as (gleich im ersten frame):
Code:
_parent.a.push(this._name);
wie man sieht wird auf der höheren ebene root, dem array a, der name des jewaligen mc's angehängt.

und jetzt will ich eine function starten die mir den ganzen array nun ausgeben soll. das problem dabei ist, dass ich diese function nur mit einer kurzen zeitverzögerungen richtig ausführen kann.
also nur dann, wenn der array vollständig gefüllt ist.

wie könnte ich diese zeitverzögerung einbauen ohne einen extra mc dafür zu erstellen, und ohne root um ein frame zu verlängern?


gruß

Geändert von artjom (26-07-2003 um 11:18 Uhr)
artjom ist offline   Mit Zitat antworten
Alt 26-07-2003, 11:32   #2 (permalink)
alien
 
Benutzerbild von Smirgel
 
Registriert seit: May 2002
Ort: Colonia
Beiträge: 7.597
hi,
wenn du nur diese mc´s auf _root hast, könnte dir evtl das hier weiterhelfen:
ActionScript:
  1. var a=new Array();
  2. for(mc in _root){
  3.         if(typeof(_root[mc])=='movieclip'){
  4.             a.push(mc)
  5.         }
  6. }
  7. trace(a); // ab hier kannst du über das ganze array verfügen
  8.  
das script einfach ins erste frame,
und auf den mc´s lässt du das "_parent.a.push(this._name);" weg.

__________________
bei fragen, fragen.
Smirgel ist offline   Mit Zitat antworten
Alt 29-07-2003, 19:43   #3 (permalink)
Developer
 
Benutzerbild von malthoff
 
Registriert seit: Sep 2001
Ort: Unterhaching/München
Beiträge: 513
Zitat:
Geschrieben von Smirgel
hi,

ActionScript:
  1. var a=new Array();
  2. for(mc in _root){
  3.         if(typeof(_root[mc])=='movieclip'){
  4.             a.push(mc)
  5.         }
  6. }
  7. trace(a); // ab hier kannst du über das ganze array verfügen
  8.  

Ich versteh zwar grundsätzlich, was du meinst, aber ist denn
mc als solches ein feststehender Ausdruck in AS? wenn er doch
10 verschiedene movieclips hat, die meinetwegen mc1- mc10 heißen, würde ich verstehen, wenn man schreibt for(mc in _root)
und dann nochmal abfragt mit typeof ob es ein movieclip ist.
aber wenn die clips anders heißen, wie kann man dann generell mc benutzen, wie du es tust?`
malthoff ist offline   Mit Zitat antworten
Alt 29-07-2003, 19:53   #4 (permalink)
alien
 
Benutzerbild von Smirgel
 
Registriert seit: May 2002
Ort: Colonia
Beiträge: 7.597
"mc" wird nur als variable verwendet.
in dieser variable stehen die einzelnen objekte in _root (nacheinander, es läuft ja in einer schleife ab).
dann wird gecheckt, ob es sich bei dem jeweiligen objekt um ein "movieclip" handelt. ist es einer, wird er mit dem instanznamen in ein array gespeichert.

also: mach mal einen neuen film auf, und erstell einige mc´s (oder kopier eins.... ist egal). dann gibst du den mc´s belibige instanznamen. kopierst das script ins erste frame und startest den film. dann sollten alle mc´s im ausgabefenster aufgelistet werden (mit komma getrennt, da es sich um ein array handelt).

sonst frag nochmal genauer
__________________
bei fragen, fragen.
Smirgel ist offline   Mit Zitat antworten
Alt 29-07-2003, 19:56   #5 (permalink)
Developer
 
Benutzerbild von malthoff
 
Registriert seit: Sep 2001
Ort: Unterhaching/München
Beiträge: 513
ok, sorry.
war gerade etwas weg. mit der for in schleife werden also
alle objekte in dem zielort (hier _root) bearbeitet, mc steht hier
als variable als container für die schleifen abfrage.

gut, habs verstanden und finds geil.

danke, ich denke, der artjom wird das jetzt auch verstehen.

cool
malthoff ist offline   Mit Zitat antworten
Alt 29-07-2003, 19:59   #6 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Vielleicht ma ab und zu in die Referenz gucken!!
Statt "mc" kannste auch "Wurstsemmel" schreiben, mc ist nur ne Variabel!!
for..in

Verfügbarkeit

Flash Player 5.

Verwendung

for (iterationsvariable in objekt){
anweisung(en);
}
Parameter

iterationsvariable Der Name einer Variablen, die als Iterator fungiert und auf jede Objekteigenschaft oder jedes Array-Element verweist.

objekt Der Name des Objekts, das wiederholt werden soll.

anweisung(en) Eine Anweisung, die für jede Iteration ausgeführt wird.

Rückgaben

Keine.

Beschreibung

Aktion; durchläuft die Eigenschaften eines Objekts oder Elements in einem Array aus und führt die anweisung für jede Objekteigenschaft aus.

Einige Eigenschaften können durch die Aktionen for oder for..in nicht aufgezählt werden. Beispielsweise sind die integrierten Methoden des Array-Objekts (Array.sort und Array.reverse) nicht in der Aufzählung eines Array-Objekts enthalten, und Movieclip-Eigenschaften wie _x und _y werden nicht aufgezählt.

Das for..in-Konstrukt durchläuft alle Objekteigenschaften in der Prototypkette des durchlaufenen Objekts. Wenn der Prototyp des Unterelements parent lautet, werden beim Durchlaufen der Eigenschaften des Unterelements mit for...in auch die Eigenschaften des übergeordneten Elements (parent) durchlaufen.

Die Aktion for..in zählt alle Objekte in der Prototypkette eines Objekts auf. Die Eigenschaften des Objekts werden zuerst aufgezählt; darauf folgen die Eigenschaften des unmittelbaren Prototyps, dann die Eigenschaften des Prototyps des Prototyps usw. Die Aktion for..in zählt ein und den selben Eigenschaftennamen nicht zweimal auf. Wenn das Objekt child den Prototyp parent aufweist und beide die Eigenschaft prop enthalten, zählt eine für child aufgerufene for..in-Aktion die Eigenschaft prop von child auf und ignoriert die gleichnamige Eigenschaft in parent.

Beispiel

Im folgenden Beispiel werden mit for..in die Eigenschaften eines Objekts durchlaufen:

meinObjekt = { name:'Tara', alter:27, ort:'Hamburg' };
for (name in meinObjekt) {
trace ("meinObjekt." + name + " = " + meinObjekt[name]);
}
Die Ausgabe dieses Beispiels lautet wie folgt:

meinObjekt.name = Tara
meinObjekt.alter = 27
meinObjekt.ort = Hamburg
Im folgenden Beispiel wird for..in zusammen mit dem Operator typeof verwendet, um einen bestimmten Unterelementtyp zu durchlaufen:

for (name in myMovieClip) {
if (typeof (meinMovieclip[name]) = "movieclip") {
trace ("Es gibt einen untergeordneten Movieclip namens " + name);
}
}
Im folgenden Beispiel werden die Unterelemente eines Movieclips aufgezählt und jeweils in Bild 2 in den entsprechenden Zeitleisten gestellt. Der Movieclip Optionsfeldgruppe ist ein übergeordnetes Element mit mehreren Unterelementen: _OptionsfeldRot_, _OptionsfeldGruen_ und _OptionsfeldBlau.

for (var name in Optionsfeldgruppe) {
Optionsfeldgruppe[name].gotoAndStop(2);
}
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake 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 16:57 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele