Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-05-2007, 12:57   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 43
Wenn Zähler bestimmten Wert erreicht hat --> etwas machen

Hallo Forum,

ich weiß leider nicht, wie ich das Thema sonst nennen soll.
Außerdem muss ich gestehen, dass ich bin blutiger Anfänger in AS bin.

Stecke mit einem Problem seit 2 Tagen fest, habe aber nirgendwo einen Ansatz gefunden. Und das rumfrickeln bringt mich langsam an den Abrgund des Wahnsinns.

Folgende Situation:

Ich habe einen Zähler, der bis zu einem bestimmten Wert hochzählt.
Ein zweiter Zähler hat einen festgelegten Wert zu dem die Ausgabe des ersten Zähler dazu addiert werden soll.

Wenn nun der gewünschte Zählerstand des ersten Zählers erreicht ist,
soll ein MovieClip zu einer bestimmten Position geschickt werden.

Habe bisher folgenden Code:

Code:
var my_fmt:TextFormat = new TextFormat();
my_fmt.font = "ARIAL";
my_fmt.color = 0x990000;
my_fmt.size = 18;
my_fmt.align = "right";

this.createTextField("count", 10, -70, -55, 100, 20); 
this.createTextField("countall", 11, -70, -14, 100, 20); 

var ziel = 100;
var i = 0;
var k = 0;
this.onEnterFrame = function() { 
 	if (++i<=ziel) { 
        count.text = (""+i) * 5; 
		count.setTextFormat(my_fmt);
		}
	
	if (count.text<=500) { 
         countall.text = 2500 + Number(count.text); 
	    countall.setTextFormat(my_fmt);
    	}	
	
	if (Number(count.text)==500) { 
       _root.panel.jogger.gotoAndPlay("joggeroutro");
    	}	
	
};
stop();
Wie man außerdem sieht, habe ich irgendwie etwas zusammen gemurkst, dass der Zähler1 schneller zählt, sprich den Wert immer um 5 erhöht bis 500 erreicht ist. Das funktioniert auch soweit, außer das ich es etwas umständlich gemacht ist. Andere Lösung habe ich auch hier nicht hinbekommen.

Das eigentliche Hauptproblem ist aber, dass ich es einfach nicht hinbekomme, dass die gotoAndPlay() Anweisung ausgeführt wird.
Egal was ich bis jetzt ausprobiert habe:
Entweder bleibt der MovieClip ganz stehen, es passiert nichts, oder der MovieClip springt gleich zu "joggeroutro".
Ich habe es nun auch schon über eine Schleife versucht, bin hier aber komplett gecheitert.

Vielleicht kann sich von Euch jemand meiner Annehmen, und einen "AS-Blinden" einen Schritt weiter führen.

Vielen Dank im voraus.
maximaexchen
maximaexchen ist offline   Mit Zitat antworten
Alt 12-05-2007, 13:03   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo,

solltest mal das onEnterFrame löschen:
PHP-Code:
if (Number(count.text)==500) { 
       
_root.panel.jogger.gotoAndPlay("joggeroutro");
delete this.onEnterFrame
        

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 12-05-2007, 13:17   #3 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 43
Nee ne.
Super das klappt! Vielen Dank!
Ich hatte das "delete this.onEnterFrame" zwar auch schon drinnen, aber außerhalb der letzten if Anweisung.

Jetzt habe ich nur gerade gemerkt, dass dann ein weiteres Problem entsteht.
Der "jogger"-MC besteht aus 3 Sequenzen "joggerintro"(animierter Läufer läuft an), "joggerloop" (Jogger läuft) und "joggeroutro" (Jogger bleibt stehen).
"joggerloop" wird, wie der Name schon sagt während der Zähler hochzählt geloopt.
Geht das irgendwie, dass der "joggerloop" bei erreichtem Zählerwert erst noch an sein Ende läuft, und dann "joggeroutro" angelaufen wird?
Sonst kann es sein das der Inhalt des MC je nach aktueller Position hüpft. Quasi so etwas wie eine Positionsabfrage innerhalb des MC.

Danke!
maximaexchen ist offline   Mit Zitat antworten
Alt 12-05-2007, 13:24   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Du hast Szenen verwendet? Das ist schlecht.
Kann man in einer Szene _totalframes abfragen? Weiß ich nicht, da ich noch nie Szenen benutzt habe. Musste mal testen:
PHP-Code:
if (Number(count.text)==500) {
if(
_root.panel.jogger._currentframe == _root.panel.jogger._totalframes){  
       
_root.panel.jogger.gotoAndPlay("joggeroutro"); 
delete this.onEnterFrame }
        } 
edit: Alternativ setzt du ins letzte Bild der Szene "joggerloop" halt ein Abfrage auf eine Variable - z.B.:
PHP-Code:
if(_root.weitergotoAndPlay("joggeroutro"
Die Variable _root.weiter setzt du dann nach deinem Counter auf true...
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++

Geändert von Der Frager (12-05-2007 um 13:26 Uhr)
Der Frager ist offline   Mit Zitat antworten
Alt 12-05-2007, 14:08   #5 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 43
Nein, ich habe keine Szenen?!
Video-Sequenzen! Da habe ich mich wohl falsch ausgedrückt.

Also einen MC (jogger) indem 3 Video-Sequenzen hintereinander auf der selben TimeLine liegen mit den jeweiligen Bildmarkierungen/Sprungmarken "...intro (50 Frames), ...loop (200 Frames), ...outro (50 Frames)" am Ende des Bereichs "joggerloop" steht halt gotoAndPlay("joggerloop").

Habe Deinen beiden Varianten mal probiert, funzt aber Beides nicht.
Stelle ich die Variable folgender Maßen auf true?

Code:
if (Number(count.text)>=500) { 
	 var weiter = true;
	 delete this.onEnterFrame 
    	}
und am Ende des Abschnitts "joggerloop", qusi im letzten Frame des zu-"loopenden"-Bereichs habe ich

Code:
if(_root.panel.counter.weiter) gotoAndPlay("joggeroutro");
geschrieben.

Sorry, wenn ich mich so anfängermäßig anstelle.
maximaexchen ist offline   Mit Zitat antworten
Alt 12-05-2007, 14:10   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Wenn alles in einer Zeitleiste liegt, dann sollte es so gehen:
PHP-Code:
if (Number(count.text)==500) { 
if(
_root.panel.jogger._currentframe == 250){//250 wäre dann das Ende von Joggerloop (wenn ich's richtig verstanden habe)   
       
_root.panel.jogger.gotoAndPlay("joggeroutro");  
delete this.onEnterFrame 
        } 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 12-05-2007, 14:19   #7 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 43
Super genial.
Jetzt funktionierts!
Ich bin total begeistert.

Vielen vielen Dank für die Geduld.

Ich merke schon ich habe noch einen langen Weg vor mir.

Grüße
maximaexchen
maximaexchen 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 13:26 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele