Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-05-2006, 16:31   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2002
Beiträge: 219
onEnterFrame läuft trotz stop() weiter

Hallo alle,

ich möchte einige ActionScript-Befehle in jedem Frame der Hauptzeitleiste ausführen lassen. Da es immer die gleichen sind, will ich sie nicht in jeden Frame kopieren. Allerdings laufen die Bilder nicht einfach hintereinander ab, sondern werden in jedem Bild ge-stop()-t und dann wird manuell weitergeschaltet.

Mein Testfall sieht so aus:
Code:
c = 1;
_root.onEnterFrame = function(){
	trace(c);
	c++;
}
stop();
Anscheinend hält sich das onEnterFrame aber nicht an den stop(), denn so wird ständig weiter hochgezählt und ausgegeben. Wie definiere ich den Skriptbereich so, dass er wirklich nur dieses eine Mal ausgeführt wird und dann erst wieder, wenn man per gotoAndStop() ins nächste Bild springt?

-- sterlu
sterlu ist offline   Mit Zitat antworten
Alt 15-05-2006, 16:36   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Zitat:
Zitat von sterlu
Anscheinend hält sich das onEnterFrame aber nicht an den stop()...
Ich sach mal ZUM GLÜCK!!!

Wozu willst du denn da (wenn's nur einmal ausgeführt werden soll) überhaupt onEnterFrame nehmen?!?
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 15-05-2006, 16:42   #3 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Und nen onEnterFrame killt man so:

ActionScript:
  1. c = 1;
  2. _root.onEnterFrame = function(){
  3.     trace(c);
  4.     c++;
  5.         delete this.onEnterFrame;
  6. }
  7. stop();

Aber ja, warum so?
Geht doch auch so:

ActionScript:
  1. c=1;
  2. //
  3. _root.myCounter = function() {
  4. trace(_root.c);
  5. _root.c ++;
  6. }
  7. // Aufruf mit
  8. myCounter();

--pp
~pyropete~ ist offline   Mit Zitat antworten
Alt 15-05-2006, 16:46   #4 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Ort: St. Johann / Pg.
Beiträge: 42
onEnterFrame() wird permanent ausgeführt (Vergleich: ein Pkw-Motor im Leerlauf) -> Du kannst dieses Ereignis auch nicht stoppen.

Was Du machen kannst ist, dass Du nicht mehr auf das Ereignis reagierst.

delete this.onEnterFrame;


Ciao

Joker
joker11 ist offline   Mit Zitat antworten
Alt 15-05-2006, 16:52   #5 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
ich weiss auch noch was ;-)

stop();
bezieht sich NICHT auf die programme, sondern darauf, ob zum nächste frame gegangen werden soll.
stop() und play() regeln gewissermassen den 'vorschub'.

deshalb ist auch die position dieser befehle im script egal (d.h. das letzte kommando gilt). sonst würde ja ein stop() ganz oben im script alle nachfolgenden befehle unterbinden. tut es aber nicht.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 15-05-2006, 17:06   #6 (permalink)
Neuer User
 
Registriert seit: Oct 2002
Beiträge: 219
OK, also mein Fall ist folgender: Ich habe in der Hauptzeitleiste etwa 100 Frames. Jeder dieser Frames wird manuell angesprungen, d.h. in jedem von ihnen steht ein stop(). Daneben beinhaltet jeder Frame noch eine Reihe von anderen ActionScript-Befehlen, die auch für alle gleich sind.

Wie mache ich es am schlauesten, dass immer dann, wenn einer der Frames aufgerufen wird, dieser Code ausgeführt wird -- aber nur dann?

-- sterlu
sterlu ist offline   Mit Zitat antworten
Alt 15-05-2006, 17:11   #7 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Schreib doch einfach in die entsprechenden Frames
PHP-Code:
c++ 
...oder ich verstehe nicht, was du willst.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 15-05-2006, 17:30   #8 (permalink)
Neuer User
 
Registriert seit: Oct 2002
Beiträge: 219
Ich suche ja gerade nach einer Lösung, in der ich nicht in jeden Frame identischen Code schreiben muss ...

-- sterlu
sterlu ist offline   Mit Zitat antworten
Alt 15-05-2006, 18:24   #9 (permalink)
Isch kucke
 
Registriert seit: Jan 2005
Beiträge: 1.616
Also es soll immer das gleiche gemacht werden???
__________________
Gesehen auf einem Türschild:

Niederknien, anklopfen und um Audience betteln

Har Har

http://www.flashforum.de/forum/flash-mx-2004/uberblenden-tutorial-180341.html
Mp3 Player http://www.flashforum.de/forum/stuff/stuff-jukebox-196373.html
labrar ist offline   Mit Zitat antworten
Alt 15-05-2006, 18:29   #10 (permalink)
Neuer User
 
Registriert seit: Oct 2002
Beiträge: 219
Ja. Da sind Funktionsaufrufe drin, die in jedem Frame gebraucht werden. Sie greifen aber beim aufruf jeweils auf Variablen zurück, die in jedem Frame andere Werte haben können.

-- sterlu
sterlu 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 03:02 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele