6 Stimmen

Anhalten beim letzten Bild (Blitzlicht)

Ich möchte, dass mein Filmclip einmal abgespielt wird und beim letzten Bild stoppt. Ich verwende den folgenden Code in der Schleife meiner Movieclip-Klasse. (dies ist as3)

if(currentFrame == 120)
stop();

120 ist das letzte Bild. Es spielt einmal. aber das Problem ist es geht zurück zu Frame 1 wieder. gibt es eine bessere Methode zum Anhalten eines Movieclips auf einem bestimmten Frame.

12voto

Adam Harte Punkte 10120

Wenn Sie es mit Actionscript machen wollen und nicht manuell ein stop() zum letzten Frame auf der Zeitachse hinzufügen wollen, dann können Sie die undokumentierte addFrameScript() Methode.

mc.addFrameScript(mc.totalFrames - 1, function():void 
{
    mc.stop();
});

Ich kann mich nicht mehr an den Umfang der Funktion erinnern, aber Sie können entweder mc.stop() oder einfach stop() verwenden.

*EDIT - Hinzugefügt -1 an den ersten Parameter von addFrameScript, da er auf Null basiert (um also ein FrameScript auf einen Frame zu setzen 10 Sie würden 9 ).

3voto

Tyler Egeto Punkte 5475

Auf der Zeitachse können Sie einfach einen Keyframe am Ende einfügen und die stop(); Methode dort. Wenn sie diesen Rahmen erreicht, wird die stop(); wird ausgeführt, und der Clip wird angehalten.

Vorausgesetzt, Sie verwenden die Zeitleiste, aber das scheint der Fall zu sein.

2voto

Sagar Punkte 455

Das ist der einfachste Weg:

  1. Wählen Sie einfach den letzten Frame in der Zeitleiste aus. Öffnen Sie das Fenster "Aktionen" (F8). Vergewissern Sie sich, dass das ausgewählte Bild immer noch ausgewählt ist. Wenn nicht, wählen Sie es erneut aus, während das Fenster "Aktionen" geöffnet ist.

  2. Nach der Auswahl fügen Sie einfach die einfache stop()-Funktion in das Fenster "Action-Frame" ein.

    //add the following line to the actions pane of the last frame.
    stop();
  3. Sie sind fertig. Sie können bei Bedarf eine Schaltfläche für die Wiederholung hinzufügen.

0voto

Newtang Punkte 6094

Dies scheint eher dem zu entsprechen, wonach Sie suchen:

addEventListener(Event.ENTER_FRAME, function(e:Event){
    if(currentFrame == totalFrames){
      stop();
      removeEventListener(event.type, arguments.callee);
    }
});

Ich habe einen Ereignis-Listener (für Actionscript 3) hinzugefügt, so dass diese Funktion bei jedem Frame ausgelöst wird und prüft, auf welchem Frame sie sich befindet. Wenn es das letzte Bild ist, wird sie angehalten. Basierend auf Ihrem Beispiel nehme ich an, Sie haben eine Klasse, die MovieClip erweitert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X