Wartezeit

Los Wachos

Mitglied
Ich brauche mal wieder etwas Hilfe.
Ich habe einen Banner erstellt und er sollte ganz normal abspielen, dann Stoppen und jetzt der Knackepunkt ca.20-25 Sek. im letzen Bild stehen bleiben und wieder am Start Anfangen. Kann mir da jemand Action Script technisch helfen oder ist es garnicht möglich.
 
die simpelste aber nicht schönste Variante ist:

PHP:
if(_currentframe == 21){
   var i = 0;
   i++;
   if(i=3000){
   _root.gotoAndPlay(1);
   }
}
 
1. in RUssentechnik:

mach einfach noch frames dran framerate * gewünschte Sekunden gleich ANzahl der anzufügenden Frames.

2. in hochgeistiger TEchnik

gib mal als suchbegriff wait ein und du findest ne krasse oop nummer von geist, die ausser ihm wenige verstehen, die glaub ich aber für dein problem gemacht ist.

3. du gibst timer als suchbegriff ein, schreibst die methoden zum setzen und auslesen von nem TImer ab, und setzt auf das letzte bild ne for schleife, die springt, wenn die Zeit erreicht ist....

hgzh
B
 
Skyla auf jeden deine Lösung is suberer :)
Ich hab mien Ding nur bei nem Preloader benutzt und da hats geklappt... aber ich hab mir sagen lassen dass mein Ding nich funktioniert :(

bis denne
 
Jo, mein OOP-Timer war eher ein Versuch und ein Appell an die Gemeinde, mir zu helfen.

Ich glaub das geht nicht wirklich so ohne setInterval()...

Dumm ist eigentlich auch, dass das JavaScript-übliche setTimeout() nicht mitimportiert wurde in ActionScript MX. :(
Da ist AS schon nur eine Implementierung von JS, aber so elementare Methoden wie setTimeout() werden nicht abgeglichen...

Wäre aber mal reif für eine Methode für's prototype-Objekt, den nötigen Inhalt hat Skyla ja schon gepostet.
Wenn's keiner macht, mach' ich's nachher. :)

Grüßle,
euer Geist

Geist
 
Übrigens, was mir hier im Zusammenhang auffällt - vielleicht für den ein oder anderen durchaus interessant...

...und ich hoffe mal, dass es keiner von meinen - Skyla würde sie so benennen - "Schnellschüssen" ist. ;)

Nehmt mal folgenden Code her:
PHP:
function ausgabe(meinText) {
	trace(meinText);
	clearInterval(id);
}

function master(blubb) {
	id = setInterval(ausgabe, 500, blubb);
}

master("blubb");
Wer scriptinteressiert ist, sollte hier imho feststellen können, dass die Regeln des Scopings von lokalen Variablen hier anscheinend nicht gelten....denn "blubb" als lokale Variable der Funktion "master" wird hier für eine Argumentübergabe an die Funktion "ausgabe" genutzt - innerhalb der Methode setInterval(), deren Kontextobjekt *nicht* das Funktionsobjekt von "master" ist, sondern das _level0-Objekt!

Meinungen, Korrekturen, Gedanken? :)

Geist,
gespannt
 
denn "blubb" als lokale Variable der Funktion "master"

versteh ich jetzt nicht ganz. warum lokale variable ?
ist doch eine ganz normale parameterübergabe ?

schau mal:
PHP:
function fun1(var1) {
	fun2(var1);
}
function fun2(var2) {
	trace(var2);
}
fun1('dieser text wird von fun2 aufgerufen')

hat imho nichts mit setInterval zu tun

aber war zuerst auch n'bisschen verwirrt;)
 
Ne, dein Beispiel ist mir schon einleuchtend und da find ich auch nix schief dran.

Aber nochmal folgendes zu meinem:

"blubb" ist lokale Variable im Funktionsobjekt von "master", gell?
Als solches dürfte es beim Aufruf der Funktion "ausgabe" per setInterval() mit Parameterübergabe gar nicht zur Verfügung stehen, sondern maximal ein undefined darstellen.

Erklärung:
setInterval() dürfte als lokale Variablen nur die Variablen seines Kontextobjektes ansehen, was ja imho _level0 ist.
Auf _level0 existiert aber eben die Variable nicht, denn die findet sich ja im Funktionsobjekt von "master", nirgends anders.

Verstehst du vielleicht jetzt?

Geist
 
Zurück