Antworten auf deine Fragen:
Neues Thema erstellen

Button sagen "Lass die Animation zuende spielen, dann gehe zu...!"

Vektorenschubser

Noch nicht viel geschrieben

hallo,als as neuling steh ich vor der schwierigen aufgabe,einem button zusagen er soll zu frame 20 springen, aber erst wenn der frame loop(frame1 - frame19) alle frames abgespielt hat.

ich habe eine animation zwischen frame 1 und 19. die immer wieder loopt.
wenn der user auf den button klickt, soll die animation erst bis frame 19 laufen und dann auf 20 springen.
so gibts ein sauberen animationsübergang.

sowas muss doch realisierbar sein ?
 

ti8shbi

Allround

AW: Button sagen "Lass die Animation zuende spielen, dann gehe zu...!"

Wenn du das Ganze in AS3 schreibst, wäre es eine Möglichkeit, globale Variablen:

Code:
var buttonClicked:Number = new Number(0);
var currentFrame:Number = new Number(0);
zu definieren.
Dann eben einen Enter Frame Handler einrichten:

Code:
stage.addEventListener (Event.ENTER_FRAME, enterFrameListener);
und in der Funktion enterFrameListener:

Code:
function enterFrameListener (e:Event):void {
    if (buttonClicked == 1){
        currentFrame++;
        if (currentFrame == 20){
            runNext();
            stage.removeEventListener(Event.ENTER_FRAME, enterFrameListener);
        }
    }
}
wird dann einfach geprüft, ob der Button schon geklickt wurde, und wenn ja, wird bei jedem Enter Frame der momentane Frame um eins erhöht, und wenn der 20. Frame erreicht wird, wird zu der Funktion "runNext" gesprungen und der Framezähler wieder aus dem Speicher gelöscht.

Hoffe, das hilft ein bisschen.
 

Vektorenschubser

Noch nicht viel geschrieben

AW: Button sagen "Lass die Animation zuende spielen, dann gehe zu...!"

danke für deine hilfe, aber ich hab mein dokument in as2 angelegt und bin froh das es bisher so klappt wie ich es mir vorstelle.

nach stunden langen suchen hab ich das hier gefunfen

-----------------------------

testbutton.onPress = function () {
advanceFrames();
}
function advanceFrames () {
var frameNum:Number = 0;
onEnterFrame = function () {
if (frameNum <= 19) {
nextFrame();
frameNum++
}
else {
delete this.onEnterFrame;
gotoAndPlay(20);
}
}
}

-----------------
klappt eigentlich auch, aber wenn ich den button drücke werden erst alle frames abgespielt und dann gehts zu frame 20.
wenn der user z.b. in frame 15 den button drückt sollten auch nur die übrigen 4 frames abgespielt werden.
hab den eindruck es werden alle 20 frames nochmal gespielt?

hast du ne idee worans liegt?
 

ti8shbi

Allround

AW: Button sagen "Lass die Animation zuende spielen, dann gehe zu...!"

das liegt daran, dass die Frames erst gezählt werden, sobald der Button geklickt wird...

in as2:

Code:
var frameNum:Number = 0;
var buttonClicked:Number = 0;

onEnterFrame = function () {
  if (frameNum <= 19) {
    frameNum++;
    nextFrame();
  } else {
    if (buttonClicked == 1){
      delete this.onEnterFrame;
      gotoAndPlay(20);
    }else{
      frameNum = 0;
      gotoAndPlay(0);
    }
  }
}

testbutton.onPress = function () {
    buttonClicked = 1;
}
sollte funktionieren, ist aber ungetestet...
 
Zuletzt bearbeitet:

Vektorenschubser

Noch nicht viel geschrieben

AW: Button sagen "Lass die Animation zuende spielen, dann gehe zu...!"

dank dir ! klappt super .
die zeile
--------
frameNum = 1;
gotoAndPlay(1);
---------
hab ich die 0 gegen die 1 getauscht so das es bei frame 1 wieder anfängt.

jetzt hab ich noch ne frage.
kann ich das ganze zeug wie animation ,script in einen movieclip packen ?
oder muss das auf der hauptzeitleiste ?
 

ti8shbi

Allround

AW: Button sagen "Lass die Animation zuende spielen, dann gehe zu...!"

perfecto :)

du kannst schon alles in einen MovieClip packen, du musst aber drauf schauen, dass du auch alle Elemente, die du mit dem Script im MovieClip ansprechen willst, auch im MovieClip instanziert sind, und nicht außerhalb... außer du sprichst die Elemente eben mit dem absoluten Zeiger an... da bin ich mir nicht mehr sicher, aber ich glaube das funktioniert dann z.B. mit

_root.meinElement.alpha = 80;

oder so...
 

Vektorenschubser

Noch nicht viel geschrieben

AW: Button sagen "Lass die Animation zuende spielen, dann gehe zu...!"

hmm ,das ist doch etwas verzwickt das ganze, ich habe jetzt alles in ein movie clip gepackt. In den selbigen ist auf der zeitleiste das script.
Nur der button ist ausserhalb(der pfad is richtig), nun will es aber nicht klappen.
Jemand ne idee?

Oder kann man mit dem obigen script auch die zeitleiste bestimmter movieclips ansprechen ?


z.b.

meinMovieclip.onEnterFrame = function () {...


usw.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.066
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben