Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-12-2007, 12:40   #1 (permalink)
AS3Transformator
 
Benutzerbild von eLem3ntx
 
Registriert seit: Jun 2007
Beiträge: 50
Question Flashspiel pausieren/einfrieren

Hallo mal wieder liebe Flash'ler
Also ich habe ein Spiel erstellt welches aus AS1 und Movieclips besteht, nun möchte ich in dieses Spiel eine Art "Pause" Button erstellen und ja ich hab auch schon die SuFu benutzt jedoch hab ich nichts gefunden um den Acrtionscript zu stoppen.
Kurz gefasst: Ich bekomme das Spiel einfach nicht zum Stillstand, es soll sozusagen einfrieren so wie es in diesem Moment ist wenn man auf Pause klickt und wenn man ein zweites mal klickt, soll es an der selben Stelle weiterlaufen.

Ich hoffe ihr könnt mir weiterhelfen...
Vielen Dank im Voraus
em3L eLem3ntx
__________________
Lantian Design - Play Defend the Village, watch great Movies and much more
eLem3ntx ist offline   Mit Zitat antworten
Alt 19-12-2007, 13:08   #2 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Ohne Fla, Code, Beispiel wird das nix.

Sollte doch eigentlich langsam mal klar sein ...
~pyropete~ ist offline   Mit Zitat antworten
Alt 19-12-2007, 13:21   #3 (permalink)
AS3Transformator
 
Benutzerbild von eLem3ntx
 
Registriert seit: Jun 2007
Beiträge: 50
Ja wie beispiel? Soll ich den kompletten Script vom ganzem Spiel posten? Wohl eher nicht^^
Nein jedes Movieclip wird meist über sich selbst via Actionscript gesteuert und dann gibt es noch ein steuerungs Movieclip indem logischerweise alles gesteuert wird.
Und nun möchte ich den Ablauf dessen Scripts/onEnterFrames einfach einfrieren oder anhalten lassen.
__________________
Lantian Design - Play Defend the Village, watch great Movies and much more
eLem3ntx ist offline   Mit Zitat antworten
Alt 19-12-2007, 13:47   #4 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Aktive MovieClips in einem Objekt oder Array referenzieren, dann per for-
Schleife die onEnterFrames per delete killen. Am besten nimmste ein mehr-
dimensionales Array, wo Du pro Clip noch die Eigenschaften notierst (z.B.
aktuelle Position auf der Bühne, irgendwelche weiteren relevanten Werte),
damit jeder MovieClip da weitermachen kann wo er nach Klick auf Pause
aufgehört hat. Dann die OEF's per for wieder dranhängen.
~pyropete~ ist offline   Mit Zitat antworten
Alt 19-12-2007, 14:26   #5 (permalink)
Rock'n'Bass
 
Benutzerbild von <sVkVmVit>
 
Registriert seit: Feb 2006
Ort: Hamburg
Beiträge: 202
Lightbulb

Jo kann man machen. Hab da noch eine andere Methode, die evtl. geeignet sein könnte für dich. Zumindest Flashanfängern würde ich diese empfehlen. Aber auch sonst wie ich finde ganz gut nachvollziehbar. Nämlich diese:

Du definierst am Anfang des Spiels auf _root (oder eben zu beginn deines MCs, der alles steuert) eine Variable mit z.B. dem namen spielfluss und setzt diese auf true, da das Spiel ja zu Beginn laufen soll.
In den AS der einzelnen Movieclips, die du sonst noch für das Spiel benutzt (alle, die sich verändern, bewegen etc..), kesselst du den jeweiligen Code, der für die Aktionen des jeweiligen MCs zuständig ist mit einer einfachen if-Abfrage wie dieser ein (nehme im folgenden beispiel einfach mal an, das die Aktionen, die den jeweiligen MC steuern, in einem EnterFrame stehen):
Code:
onClipEvent(enterFrame){
    if (_root.spielfluss == true){
        // hier stehen die Anweisungen, die etwas mit diesem MC tun
        // (z.B. ihn bewegen oder ähniches)
        }
    }
Das bewirkt logischerweise, dass alles was der jeweilige MC im Spiel tut, nur ausgeführt wird, wenn die Variable spielfluss auf true steht.

Dann brauchst du beispielsweise nur noch im Hauptcode, der alles steuert, z.B. sowas zu schreiben:
Code:
_root.onEnterFrame = function(){
    if (Key.isDown(80)){
        _root.spielfluss = false;
        } else {
            _root.spielfluss = true;
            }
    }
Hab diesen Code zwar noch nicht getestet, aber sollte bewirken, dass bei Druck auf die Taste [P] alles stehenbleibt (wenn du wie gesagt, jedem der SpieleMCs die oben stehende if-Abfrage hinzugefügt hast).

Weiß nicht ob das jetzt einfacher ist für dich, weil kommt ja auch drauf an, wieviele MCs du hast und wie groß da der Aufand für dich wäre.
Hab ich persönlich jedenfalls mal so ähnlich wie hier gelöst und bei meinem Game hats geklappt.
__________________
==>remix.nin.com<==
//
Life Is Too Short For Boring Music!
Fantasie ist die einzige Waffe gegen die Wirklichkeit.

Geändert von <sVkVmVit> (19-12-2007 um 14:28 Uhr)
<sVkVmVit> ist offline   Mit Zitat antworten
Alt 19-12-2007, 16:53   #6 (permalink)
Alter User
 
Benutzerbild von Dharokan
 
Registriert seit: Jul 2003
Ort: Dortmund
Beiträge: 636
Smile

@prototyp: Das ist ein wenig mit Kanonen auf Spatzen geschossen... Wofür die MC in der Pause deleten?

Ansonsten würde ich auch mit einer Pause (oder Spielfluss) Variablen arbeiten. Es wird aber leichter, wenn Du den Code aus den einzelnen MCs rausschmeißt und lieber eine zentrale Funktion (z.B. "mainaction") hast, die alles andere kontrolliert, bzw. anschmeißt. Darin kannst Du dann ganz leicht sowas wie eine Pause-Variabel kontrollieren:

PHP-Code:
if (!pause) {mach halt was
Das ist gar kein sooo triviales Thema.
Eine Out-of-the-Box Lösung gibt's da nicht wirklich für, da deine FLA ja auf 1000 verschiedene Weisen aufgebaut sein kann.

Und die wirklich kniffligen Sachen kommen ja erst noch:
- racing conditions (Pause gesetzt, aber noch nicht alle Funktionen des Frames, z.B. in MCs, abgearbeitet)
- Animationen, die nicht zuende gespielt werden sollten
- Sound, der auch nach der Pause da fortsetzen sollte, wo pausiert,
- Musik dito, nur evtl. noch komplizierter

Eine Pause-Funktion sollte (muss) eigentlich von Anfang ein eigeplant werden, sonst kann es wirklich lustige Seiteneffekte geben.

Hoffe, das hat geholfen und nicht abgeschreckt
__________________
Dharokan

Geändert von Dharokan (19-12-2007 um 16:55 Uhr)
Dharokan ist offline   Mit Zitat antworten
Alt 19-12-2007, 17:04   #7 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Ich weiß ich hab viel zu kompliziert gedacht ...
~pyropete~ ist offline   Mit Zitat antworten
Alt 19-12-2007, 18:01   #8 (permalink)
AS3Transformator
 
Benutzerbild von eLem3ntx
 
Registriert seit: Jun 2007
Beiträge: 50
Boah ich dödel, dass ich auf sowas einfaches nicht gekommen bin
Naja manchmal sieht man den Wald vor lauter Bäumen nicht.
Auf jeden Fall vielen Dank
em3L
__________________
Lantian Design - Play Defend the Village, watch great Movies and much more
eLem3ntx 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 12:56 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele