5 Stimmen

Gibt es einen Weg zu erkennen, wenn eine Swiffy-Animation abgeschlossen ist?

Triggeren Swiffy-Animationen ein Ereignis, wenn sie abgeschlossen sind? Oder gibt es vielleicht eine Möglichkeit, den aktuellen Frame gegenüber der Gesamtanzahl der Frames zu erfassen?

Ich habe versucht, die runtime.js-Datei zu de-minifizieren, wie in einem anderen Beitrag auf Stack Overflow erwähnt, aber ich kann sie nicht entziffern.

6voto

bergie3000 Punkte 1063

Für alle, die auf diesen Beitrag stoßen, habe ich eine Lösung gefunden. Am Ende meiner FLA habe ich einen getURL()-Aufruf verwendet. Es sieht so aus:

getURL("javascript:animationIsComplete();");

Geben Sie einfach das, was Sie möchten, in die Funktion animationIsComplete() ein, und sie wird jetzt am Ende der Swiffy-Animation ausgelöst.

2voto

J.A. Nelson Punkte 21

Flash-Zeitstrahlrahmenskript:

   import flash.net.navigateToURL;
   import flash.net.URLRequest;

   navigateToURL(new URLRequest("javascript:document.dispatchEvent(new CustomEvent('animation_done', {detail:{name:'sparkle'}}))"), "_self");
   stop();

Javascript:

 document.addEventListener("animation_done", animationDone, false);

 function animationDone(e /* Event */){
     console.log('animation done ' + e.detail.name);
 }

0voto

richardtoner Punkte 1

Falls jemand anderes auf diese Frage stößt und mit ActionScript 3 arbeitet - die beste Antwort wird für sie nicht funktionieren, da die getURL() Funktion nur in ActionScript 2 und älteren Versionen verfügbar ist.

Verwenden Sie folgendes für ActionScript 3:

navigateToURL(new URLRequest("javascript:your_function()"), "_self");

Fügen Sie dies als Aktion zum letzten Frame Ihrer Animation in Flash hinzu und konvertieren Sie es dann mit Swiffy. Sie können dann die Ausgabe von Swiffy in eine Webseite einbinden. Stellen Sie einfach sicher, dass Sie Ihre JavaScript-Funktion irgendwo im Quellcode der Seite definieren, die die Swiffy-Animation anzeigt.

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