Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-07-2011, 08:05   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2007
Beiträge: 22
Zählroutine

Hallo werte Community,

mit folgendem Script (AS2) lese ich den aktuellen Frame aus:

PHP-Code:
mc_plakat2._visible false;

var 
zaehl:Number 1;

mc_plakat_bewegt.onEnterFrame = function(){
    if (
mc_plakat_bewegt._currentframe == 50) {
          
delete this.onEnterFrame;
           
//mc_plakat_bewegt.stop();
          
mc_plakat2._visible true;
          
zaehl++;
    }

Wenn der MC mc_plakat_bewegt (ist ein Tweening mit 50 Frames, im letzten Bild liegt ein gotoandPlay (20) ) den letzten Frame erreicht hat, wird der mc_plakat2 auf sichtbar geschaltet. Soweit, sogut.

Nun läuft der mc_plakat_bewegt ja in einer Endlosschleife. Ich hätte jetzt gern, dass er stoppt, nachdem er 4 Mal durchgelaufen ist. Dazu habe ich die Variable zaehl eingefügt. Allerdings zählt die Variable nur ein einziges Mal hoch (von 1 auf 2), und ich hab jetzt herumexperimentiert, komme aber nicht auf den Trichter. Vielleicht kann mir jemand mit dem richtigen Tipp auf die Sprünge helfen - vielen Dank im Voraus!

Grüße
Thomas
tompen ist offline   Mit Zitat antworten
Alt 20-07-2011, 08:17   #2 (permalink)
Flasher
 
Registriert seit: Aug 2010
Ort: Stuttgart
Beiträge: 360
Hallo!
Etwas anderes, wie das von dir beschriebene Ergebnis, kann mit dieser Funktion auch nicht erzeugt werden
Schau doch mal: Du fragst ab, ob der aktuelle Frame genau gleich 50 ist. Dies ist doch auch nur genau einmal der Fall, oder? In diesem einen Frame wird deine Variable "zaehl" dann hochgezählt, von 1 auf 2.
Ich würde mal ins Blaue tippen, dass, wenn dein Tween wiederholt wird, er auch "zaehl" wieder auf 1 zurücksetzt, weil du die variable da erneut initialisierst, kann das sein?

Liebe Grüße!
__________________
Erwähne NIEWIEDER das Wort "Klickdummy"!
Ouroborus23 ist offline   Mit Zitat antworten
Alt 20-07-2011, 08:23   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2007
Beiträge: 22
Zählroutine

Aha...

ich dachte, dadurch, dass mc_plakat_bewegt in der Endlosschleife durchläuft, wird auch der aktuelle Frame ausgelesen und jedesmal, wenn aktueller Frame = 50, dann zählt meine Variable hoch...

Nun, dann muss ich mir wohl was anderes einfallen lassen...:-)

Gruß
Thomas
tompen ist offline   Mit Zitat antworten
Alt 20-07-2011, 08:25   #4 (permalink)
Neuer User
 
Registriert seit: Oct 2007
Beiträge: 22
Nachtrag:

Die Variable bleibt bei 2 stehen.

Thomas
tompen ist offline   Mit Zitat antworten
Alt 20-07-2011, 08:41   #5 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.867
PHP-Code:
    if (mc_plakat_bewegt._currentframe == 50) {
          
delete this.onEnterFrame
du löscht den Event-Listener nachdem er das erste mal auf Frame 50 gelandet ist.
das mit dem neu initialisieren könnte noch dazukommen, auf welchem Frame steht denn dieser Code?

ansonsten versuch es mal so:
PHP-Code:
mc_plakat2._visible false;

mc_plakat_bewegt.onEnterFrame = function(){
    if (
this._currentframe == 50) {
        
mc_plakat2._visible true;
        if(!
this.cnt){
            
this.cnt 1;
        }else if(++
this.cnt == 4){
            
delete this.onEnterFrame;
            
delete this.cnt;
        }
    }

__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist gerade online   Mit Zitat antworten
Alt 20-07-2011, 10:16   #6 (permalink)
Flasher
 
Registriert seit: Aug 2010
Ort: Stuttgart
Beiträge: 360
Zitat:
Zitat von thomas_E Beitrag anzeigen
du löscht den Event-Listener nachdem er das erste mal auf Frame 50 gelandet ist.
Guck an, das hatte ich übersehen
__________________
Erwähne NIEWIEDER das Wort "Klickdummy"!
Ouroborus23 ist offline   Mit Zitat antworten
Alt 20-07-2011, 11:00   #7 (permalink)
Neuer User
 
Registriert seit: Oct 2007
Beiträge: 22
Schau an, noch ein Thomas! :-) Ich wäre sozusagen thomas_p....

Also: Erstmal Danke für die Tipps und Anregungen.

@thomas_e: Das Script liegt auf der Hauptzeitleiste, seperate Ebene. Die Hauptzeitleiste hat nur einen Frame.

Ich hab das Script
PHP-Code:
mc_plakat_bewegt.onEnterFrame = function(){
    if (
mc_plakat_bewegt._currentframe == 50) {
        
mc_plakat2._visible true;
        if(!
this.cnt){
            
this.cnt 1;
        }else if(++
this.cnt == 4){
            
delete this.onEnterFrame;
            
delete this.cnt;
        }
    }

getestet, leider noch nicht der gewünschte Effekt...:-(

Gruss
thomas_p
tompen ist offline   Mit Zitat antworten
Alt 20-07-2011, 12:25   #8 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.867
Zitat:
leider noch nicht der gewünschte Effekt...:-(
inwiefern? was tut es, und was nicht? oder was tut es, was es nicht soll? das Script meine ich.
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist gerade online   Mit Zitat antworten
Alt 20-07-2011, 14:15   #9 (permalink)
Neuer User
 
Registriert seit: Oct 2007
Beiträge: 22
Hallo,

da war ich wohl ein wenig voreilig. Das Script tut alles tun, was es soll. Danke.

Ich hab das Script noch ein wenig modifiziert: Ich möchte, dass nach dem 4. Durchlauf von mc_plakat_bewegt dieser MC stoppt.

PHP-Code:
mc_plakat_bewegt.onEnterFrame = function(){
    if (
mc_plakat_bewegt._currentframe == 50) {
        
mc_plakat2._visible true;
        if(!
this.cnt){
            
this.cnt 1;
        }else if(++
this.cnt == 4){
            
this.mc_plakat_bewegt.stop();
            
delete this.onEnterFrame;
            
//delete this.cnt;
        
}
        
trace (this.cnt);
    }

Ich dachte, wenn ich in den else if-Zweig einen Stop-Befehl für den MC einfüge, müsste es funktionieren (d.h., wenn cnt = 4, dann stoppe...) Leider hab ich falsch gedacht....

Gruss
Thomas
tompen 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:47 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele