Flashhilfe.de - Flash Community

Ganze Applikation pausieren [Flash 8]

 


AntwortenRegistrieren Seite1  

chricken#1
Benutzerbild von chricken
Beiträge: 65
Registriert: Apr 2004

13.03.2006, 11:17

Moin,

ich brauche eine Funktionalität, die ich so einfach nicht finden kann und selber nicht so richtig hinbekomme.
Nämlich will ich für eine Präsentation eine Pause-Funktion einbauen, die den gesamten Film pausiert. Wenn ich allerdings mit stop() und play() arbeite, dann muß ich alle Unterfilme ansprechen und das kann sehr kompliziert werden.
Deswegen dachte ich, es gäbe eine Funktion, mit der einfach die Abspielgeschwindigkeit der Films beeinflusst werden kann.
Momentan läuft er mit 20fps, wenn das über einen Regler manipuliert werden könnte wäre es super und die Präsentation könnte nicht nur pausiert sondern auch langsamer und schneller abgespielt werden.
Dummerweise finde ich keine Möglichkeit, die Geschwindigkeit zu manipulieren.
Hat hier vielleicht wer eine Idee, wenn sich die Geschwindigkeit nicht manipulieren lässt wäre eine einfach Pause-Funktion genauso willkommen.

Vielen Dank schonmal
Chricken

Kai Jansen#2
Benutzerbild von Kai Jansen
Beiträge: 3099
Wohnort: Saarbrücken
Registriert: Jan 2002

13.03.2006, 11:28

Eine simple Variante wäre ein prototype für MovieClips. Allerdings hat dieser in der einfachen Form wie im Bsp. den nachteil, das er in der Zeitleiste gesetzte Stops dann ignoriert.
ActionScript:
1
2
3
4
5
6
7
8
9
_global.PAUSE = false;

MovieClip.prototype.onEnterFrame = function() {
   if (_global.PAUSE) {
      this.stop();
   } else {
      this.play();
   }
}


MfG

Kai Jansen
Flashhilfe-Moderator

http://www.flashhilfe.de
http://www.kaijansen.de

Die Zukunft ist die Vergangenheit von Übermorgen.
chricken#3
Benutzerbild von chricken
Beiträge: 65
Registriert: Apr 2004

Themenautor/in

13.03.2006, 11:54

klingt interessant, würde die Definition des Prototyps denn grundsätzlich auf alle Movieclips wirken? Sorry, ich hab noch nie mit Prototypes gearbeitet

Kai Jansen#4
Benutzerbild von Kai Jansen
Beiträge: 3099
Wohnort: Saarbrücken
Registriert: Jan 2002

13.03.2006, 12:14

Ja, genau das ist die Aufgabe eines Prototyps. Der prototype ist quasi eine Instanz einer Klasse (in diesem Fall der Klasse MovieClip) die Als Kopie für alle zu erstellenden Instanzen gilt. Wenn du also dem prototype einer Klasse etwas hinzufügst, gilt das für alle Instanzen dieser Klasse, also in diesem Fall für alle MovieClips.

MfG

Kai Jansen
Flashhilfe-Moderator

http://www.flashhilfe.de
http://www.kaijansen.de

Die Zukunft ist die Vergangenheit von Übermorgen.
chricken#5
Benutzerbild von chricken
Beiträge: 65
Registriert: Apr 2004

Themenautor/in

14.03.2006, 10:50

Cool, danke.
Jetzt muß ich es nur noch hionbekommen, den Film sauber weiterlaufen zu lassen. Schließlich wird ja kein onEnterFrame-Event mehr ausgelöst

chricken#6
Benutzerbild von chricken
Beiträge: 65
Registriert: Apr 2004

Themenautor/in

14.03.2006, 16:00

So wie es aussieht gibt es noch ein Problem.
Den OnEnterFrame-Event rufen nämlich scheinbar auch Filme auf, die eigentlich still stehen sollten, weil sie nämlich schon längst einen stop() bekommen haben.
Aber wenn ich jetzt einen play() bzw gotoAndPlay(currentFrame) mache, dann laufen auch Filme weiter, die gar nicht weiterlaufen sollen.
Weiß zufällig jemand, ob der OnEnterFrame-Event auch von eigentlich stillstehenden Movieclips aufgerufen wird? Bei mir sieht es nämlich genau danach aus.

Und falls ja, wie kann ich das umgehen?

Ich kann mir einfach nicht vorstellen, daß ich der einzige mit diesem Problem bin :(
Geändert von chricken am 14.03.06 um 16:08 Uhr
chricken#7
Benutzerbild von chricken
Beiträge: 65
Registriert: Apr 2004

Themenautor/in

15.03.2006, 00:16

So, fertig. Falls jemanden das Thema interessiert:

Leider hat mir der Vorschlag von Kai nicht wirklich geholfen.
Stoppen tut der Film zwar prima, aber das weiterlaufen ist ein Problem, weil nämlich anscheinend die OnEnterFrame-Events ausgelöst werden, auch wenn der Unterfilm gestoppt ist.
Jetzt bin ich so daran gegangen, daß beim Start eines Filmes drei globale Parameter namens "aktuell 1-3" mit den Pfaden zu den laufenden Unterfilmen besetzt werden. Bei einem klick auf Pause werden dann genau die Filme gestoppt, deren Pfade in den "aktuell"-Variablen stehen.
Bei "Play" werden diese Filme entsprechend wieder gestartet.

Ist zwar alles etwas primitiv und unelagant, funktioniert aber.
Leider muß ich in jedem Unterfilm einen kleinen Code hinterlegen und übermäßig flexibel ist die Lösung auch nicht, aber wie sagt mein Kollege immer: Fertig werden nicht vergessen.
Falls jemand eine bessere und elegantere Lösung hat bin ich immer dankbar dafür.


AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2021 Sebastian Wichmann - Flashhilfe.de