Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-07-2006, 12:05   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Beiträge: 3
gotoAndPlay direkt nach laden des MovieClips?!

Hallo,
ich möchte aus der Hauptzeitleiste innerhalb einer komplexen MovieClip-Struktur ein gotoAndPlay ausführen.

Das folgende Skript funktioniert:
Code:
    function doSomething():Void {
        mc1.mc2.gotoAndPlay(2);
        clearInterval(intervalId);
    }

    var intervalId:Number = setInterval(doSomething, 1);
Das folgende Skript funktioniert _nicht_:
Code:
    function doSomething():Void {
        mc1.mc2.gotoAndPlay(2);
        trace(mc1.mc2._currentframe); // ist 2 aber der 'playhead' stoppt in frame 2
    }

    doSomething();
Hier sind nun meine Fragen:
1. Warum funktioniert das gotoAndPlay wenn ich gerade mal 1 Millisekunde vor dem Funktionsaufruf warte (oder worauf genau warte ich da eigentlich, denn alle Attribute in mc1.mc2 sind gesetzt)?
2. Was genau läuft im Flash-Player ab, wenn die swf geladen ist (oder gibt es eine Dokumentation bzw. ein Dokument, das mir die Frage beantworten kann)?

Danke für jede Hilfe.
NilsB ist offline   Mit Zitat antworten
Alt 14-07-2006, 12:42   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
- steht da irgendwo noch ein stop herum?
- wenn du dich gerade in frame 2 befindest, dann tut das gotoAndPlay(2) nichts. ergänze mal noch ein play();
- ist mc1.mc2 zum zeitpunkt des funktionsaufrufes überhaupt vorhanden?

das mit dem setInterval kann nur zufällig funktionieren, weil da noch irgend etwas anderes da ist, das du uns nicht verraten hasst. ist aber bestimmt keine echte lösung.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 14-07-2006, 14:10   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Beiträge: 3
Vielen Dank für die schnelle Antwort.

Zitat:
- steht da irgendwo noch ein stop herum?
Nein, keine weiteren stops ausser in frame 1.
Zitat:
- wenn du dich gerade in frame 2 befindest, dann tut das gotoAndPlay(2) nichts. ergänze mal noch ein play();
Nein, ich befinde mich in frame 1 und wechsel erst mit gotoAndPlay in frame 2. Wenn ich in frame 2 ein play() habe funktioniert es. Allerdings will ich auf keinen Fall mein Skript über die Zeitleisten der MovieClips verteilen, zumal es ja auch mit gotoAndPlay laufen sollte.
Zitat:
- ist mc1.mc2 zum zeitpunkt des funktionsaufrufes überhaupt vorhanden?
Ja, ist vorhanden.

Zitat:
das mit dem setInterval kann nur zufällig funktionieren, weil da noch irgend etwas anderes da ist, das du uns nicht verraten hasst. ist aber bestimmt keine echte lösung.
Ich habe das Problem in einer fla-Datei zur Veranschaulichung in vereinfachter Form mit beigefügt. Vielleicht schafft das eher Klarheit bezüglich meines Problems. In der Hauptzeitleiste sind beide Skript-Varianten zum ausprobieren vorhanden.

Danke soweit.
Angehängte Dateien
Dateityp: zip gotoAndPlay.fla.zip (6,8 KB, 1x aufgerufen)
NilsB ist offline   Mit Zitat antworten
Alt 14-07-2006, 14:18   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!

Das ist so eine Eigenart von Flash. Funktionen in MCs sind auch erst einen Frame später bekannt.
Zuerst wird halt die Hauptzeitleiste abgearbeitet, dann "in" die anderen MCs geguckt.
Warum man trotzdem z.B. mc1.mc2.gotoAndStop(8) im ersten Frame anwenden kann muss man da nicht verstehen.
Unterm Strich baucht Flash einen Frame lang, bis man "voll" auf einen unter-MC zugreigfen kann. Ob da nun setInterval() nimmt oder onEnterFrame ist relativ egal.

PHP-Code:
this.onEnterFrame = function(){
delete this.onEnterFrame
mc1
.mc2.gotoAndPlay(2);

Wie gesagt, wenn du nicht gleich im ersten Frame auf den MC zugreifen willst, sondern später z.B. über einen Button, dann brauchst du das nicht mehr.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 14-07-2006, 15:36   #5 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Beiträge: 3
Super, vielen Dank für die Antwort. Genau das, was mir gefehlt hat. :-)
NilsB 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 17:11 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele