| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| kenntEinenDerFlashKann Registriert seit: Mar 2002 Ort: sauerland
Beiträge: 220
| setInterval() - verständnis
moin, ich will meinen film, der normalerweise in einer Schleife läuft, bei bestimmten benannten Bildern anhalten, das mach ich mit setInterval() auf dem letzten Bild vor dem nächsten benannten Bild: Code: stop();
myInterval = setInterval(function () {
clearInterval(myInterval);
play();
}, zeit*1000);
zeit = 2 //Zuweisen des Zeitintervalls für den nächsten Stop bei bestimmten User-Aktionen will ich direkt an die zugehörige Stelle springen und dort länger verweilen als normalerweise voreingestellt ist. Folgt dann keine weitere Eingabe, soll der Film dann wie gewohnt mit den normalen Verweildauern weiterlaufen. Also hab ich in die Funktion für den Button reingeschrieben: Code: gotoAndPlay("bildname");
zeit = 30; wo liegt der Fehler? Aus der Flash-Hilfe werd ich nicht so recht schlau, die Beispiele sind alle so kompliziert und hier im Forum gibt es zu "setIntervall" über 500 Einträge....
__________________ ...life is just a workaround... |
| | |
| | #2 (permalink) |
| tracer Registriert seit: Jun 2004
Beiträge: 4.415
|
wenn du die variable zeit über verschiedene frames mitnehmen möchtest, muss tu diese global intiieren und global verändern, abfragen normal: PHP-Code:
__________________ Viola per Sempre Alle Angaben ohne Gewehr! trace your open mind in variables ! andretti ActionScript Dictionary |
| | |
| | #3 (permalink) |
| ▼ Registriert seit: May 2004
Beiträge: 327
|
Du möchtest einen zeitlich gesteuerten Ablauf im Prgramm: Code: zeit=0
int_ablauf = setInterval(ablauf,1000)
function ablauf () {
zeit++
switch (zeit) {
case 1:
//mach dies
break
case 2:
//mach das
break
case 60:
//ende
clearInterval(int_ablauf)
break
}
} aai edit: 'setInterval' arbeitet etwas ungenau. Eine Sekunde im Standalone Flash- player(also beim testen) kann im Browser mit Plugin schon mal 50% länger dauern. Geändert von AAI (28-08-2006 um 10:18 Uhr) |
| | |
| | #4 (permalink) |
| kenntEinenDerFlashKann Registriert seit: Mar 2002 Ort: sauerland
Beiträge: 220
|
@andretti: da ändert sich bei meinem Problem aber aber nix... @AAI: wenn ich Dein Script richtig verstehe, wird da jede Sekunde was anderes gemacht -nett, aber nicht das, was ich suche. Ich brauche eine Steuerung für ne Messe-Präsentation, da wird ein Film mit mehreren Unterpunkten gezeigt, der läuft normalerweise als Schleife durch. Wenn aber ein Messebesucher einen unterpunkt direkt über die Tastatur anwählt (numerisches Tastenfeld), soll der Film dorthin springen und dann da etwas länger verweilen als üblich (z.B. 30 Sek). Folgt innerhalb dieser 30 Sekunden keine weitere Eingabe, läuft der Film dann von dieser Stelle ganz normal weiter...
__________________ ...life is just a workaround... |
| | |
| | #5 (permalink) |
| tracer Registriert seit: Jun 2004
Beiträge: 4.415
|
evt kannst mal eine .fla, auf das problem reduziert, hochladen; so wird das Problem nur vermutet, des ist müßig;
__________________ Viola per Sempre Alle Angaben ohne Gewehr! trace your open mind in variables ! andretti ActionScript Dictionary |
| | |
| | #7 (permalink) |
| ▼ Registriert seit: May 2004
Beiträge: 327
|
hab keine Lust mir die *.fla anzuschaunen. Weiß aber auch gar nicht, wo es hier kompliziert wird Beim Start und bei Tastendruck wird eine Funktion aufgerufen, die den automatischen Ablauf auslöst: Code: function warte_mal () {
w_zeit = 30*1000
clearInterval(int_ablauf) //falls ablauf-Interval läuft
clearInterval(int_warte) //falls warte-Interval schon läuft
int_warte = setInterval(warte,w_zeit)
}
function warte () {
clearInterval(int_warte)
int_ablauf = setInterval(ablauf,1000)
} Code: function ablauf () {
zeit++
switch (zeit) {
case 1:
//mach dies
break
case 20:
//mach das
break
case 60:
//Wiederholung
zeit = 0
break
}
} geändert worden sein, muß die Variable 'zeit' daraufhin angepasst werden, um an der gegebenen Stelle mit dem autom. Ablauf fortzufahren. Gruß aai Geändert von AAI (28-08-2006 um 13:39 Uhr) |
| | |
| | #8 (permalink) |
| kenntEinenDerFlashKann Registriert seit: Mar 2002 Ort: sauerland
Beiträge: 220
|
**Fehler** Szene=Szene 1, Ebene=Ebene 3, Bild=1:Zeile 4: Typdiskrepanz. clearInterval(warte) //falls warte-Interval schon läuft **Fehler** Szene=Szene 1, Ebene=Ebene 3, Bild=1:Zeile 9: Typdiskrepanz. clearInterval(warte)
__________________ ...life is just a workaround... |
| | |
| | #10 (permalink) |
| kenntEinenDerFlashKann Registriert seit: Mar 2002 Ort: sauerland
Beiträge: 220
| immer noch nicht...
Habs jetzt so : Code: function warte_mal () {
w_zeit = 30000;
trace("wartemal");
clearInterval(int_ablauf); //falls ablauf-Interval läuft
clearInterval(int_warte); //falls warte-Interval schon läuft
int_warte = setInterval(warte,w_zeit);
}
function warte () {
trace("warte");
clearInterval(int_warte);
int_ablauf = setInterval(ablauf,2000);
}
ablauf = function() {
play();
}
warte();
var tastaturlauscher :Object = new Object();
tastaturlauscher.onKeyDown = function() {
if(Key.isDown(97)) { //beim Drücken der Taste Num.1
gotoAndPlay("detail_01");
warte_mal();
}
if(Key.isDown(98)) { //beim Drücken der Taste Num.2
gotoAndPlay("detail_02");
warte_mal();
}
if(Key.isDown(99)) { //beim Drücken der Taste Num.3
gotoAndPlay("detail_03");
warte_mal();
}
if(Key.isDown(100)) { //beim Drücken der Taste Num.4
gotoAndPlay("detail_04");
warte_mal();
}
}
Key.addListener(tastaturlauscher) // Anmelden des Listeners bei der Key-Klasse Code: stop(); warte(); Sobald ich aber eine der Tasten 1-4 drücke, läuft der Film einfach OHNE stops durch... Er schert sich quasi gar nicht um die Zeitangaben... Hab die Fla mit deinem Scripts mal angehängt...
__________________ ...life is just a workaround... |
| | |
| | #12 (permalink) |
| kenntEinenDerFlashKann Registriert seit: Mar 2002 Ort: sauerland
Beiträge: 220
|
Nö, in dem Marker-Bild steht ja kein Code..., der Stop-Befehl kommt ein Bild vor dem nächsten Marker, gefolgt von dem warte()-Aufruf. Habs jetzt schon mit setTimeout versucht, aber irgendwie klappt das genauso wenig.
__________________ ...life is just a workaround... |
| | |
| | #13 (permalink) |
| ▼ Registriert seit: May 2004
Beiträge: 327
|
Frame 1.1 - Setup PHP-Code: PHP-Code: |
| | |
| | #14 (permalink) |
| kenntEinenDerFlashKann Registriert seit: Mar 2002 Ort: sauerland
Beiträge: 220
|
Hammer! Ich versteh zwar momentan nur die Hälfte von dem, was Du da geschrieben hast, aber es funktionert! Muss ich mich jetzt mal in Ruhe reinlesen und das Ding sezieren, damit ich's auch nachvollziehen kann. Auf jeden Fall hast Du mir sehr geholfen - ich hatte schon daran gedacht, die Systemzeit auszulesen und damit zu rechnen und somit setInterval() zu umgehen. Naja, warum kompliziert, wenns auch elegant geht ;-) Danke nochmal!!!
__________________ ...life is just a workaround... |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |