| |||||||
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) |
| Neuer User Registriert seit: Mar 2006
Beiträge: 7
| mouseClick queue
Hallo Zusammen, nach längerem Überlegen und keiner Lösung wende ich mich voller Zuversicht an euch! Ich habe folgendes Problem: Bei einem dynamischen FlashMovie können verschiedene Buttons vom Benutzer gedrückt werden. Da es bei manchen Buttons zu komplizierteren Abläufen kommt, kann die Durchführung etwas dauern. Dadurch kann der Benutzer sich genötigt fühlen, auf weitere Button zu drücken, weil er denkt es passiert nichts. Wie kann ich verhindern, dass diese Events danach nicht auch noch ausgeführt werden? Also in etwa so: while ( die aktion des letzten events noch bearbeitet wird ) { ignoriere alle weiteren events vom benutzer } Versucht hab ich das schon mit einer Boolean-Variable, die jeweils gesetzt wird, wenn eine Aktion läuft. Da Flash die ClickEvents aber scheinbar intern in einer queue abspeichert und dann nacheinander aufruft, hatte ich damit keinen erfolg . Kann mir hier jemand helfen? Vielleicht, wie man auf diese queue zugreift?! Danke. Philipp |
| | |
| | #3 (permalink) | |
| Neuer User Registriert seit: Mar 2006
Beiträge: 7
| Zitat:
Ich hab das mal ausprobiert, komme aber zu keinem zufriedenstellenden Ergebnis. Vielleicht kannst du dir meinen Code mal anschauen: Code: function doSomething(){
blue1.enabled = false;
trace("----START-----");
trace("klick");
var i = 0;
while(i < 10000){
var x = Math.cos(i) + Math.sin(i);
i++;
}
trace("----END----");
blue1.enabled = true;
}
blue1.onPress = doSomething; Es scheint, als würde der Ausdruck "blue1.enabled = false;" gar nicht greifen, da auch kein neues Frame betreten wird, innerhalb eines onPress() Funktionsaufrufs. ?? Geändert von phil_heim (07-08-2006 um 15:09 Uhr) | |
| | |
| | #4 (permalink) | |
| Neuer User Registriert seit: Aug 2001 Ort: München
Beiträge: 1.162
| Zitat:
| |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Mar 2006
Beiträge: 7
|
ich hab eine lösung... auch wenn es wahrscheinlich nicht die beste ist: Code: var runs:Boolean = false;
function doSomething(){
blue1.enabled = false;
trace("----START-----");
trace("klick");
var i = 0;
while(i < 10000){
var x = Math.cos(i) + Math.sin(i);
i++;
}
trace("----END----");
}
_root.onEnterFrame = function(){
trace("frame");
if(runs){
blue1.enabled = true;
runs = false;
trace("runs = false & blue1 = enabled");
}
if(blue1.enabled == false && runs == false){
runs = true;
trace("runs = true");
}
}
blue1.onPress = doSomething; Ab dem zweiten Frame kann der Benutzer dann wieder drücken. Dadurch habe ich zwar eine verzögerung von einem Frame , die nicht notwendig wäre, aber etwas besseres fällt mir nicht ein! Philipp |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |