| |||||||
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: Sep 2005
Beiträge: 36
| Zuviele setInterval()-Parameter?
Hi Leute! Bin grad an ner Navigation. Nun soll sich ein MovieClip auf der Y-Achse verschieben, per setInterval() Code: // Die Funktion
_global.setMove = function(daClip:MovieClip,daStartY:String,daStopY:String,daInterval:Number){
trace(daInterval)
if(daClip._y > daStopY){
daClip._y--
} else {
clearInterval(daInterval)
}
}
// Die Auslösung
this.holderOfAll_mc.onRollOver = function(){
if(!this.startMove){
this.startMove = setInterval(setMove,100,this,75,55,this.startMove)
}
} ![]() Und das Code: trace(daInterval) Hätte es auch mit onEnterFrame machen können, ich weiss....hatte aber schon einige male probleme mit setInterval parametern, will nun mal wissen wieso das nicht funzt ![]() Gruss Laws |
| | |
| | #2 (permalink) |
| °.oO°O.o°.oO.o°O Registriert seit: Jun 2005 Ort: CH
Beiträge: 1.490
|
Hi Laws! Greetz @bict! ![]() Ich würde mal schwer darauf tippen, dass der Interval, zu dem Zeitpunkt, wo du ihn als Parameter übergibst, noch nicht definiert ist. Der Interval holt sich aber keine neuen Werte für die Parameter, sondern nimmt jenen, den der Paramter zur Zeit der Übergabe gehabt hat. Und da zu diesem Zeitpunkt der Interval noch nicht definiert war, kann er logischerweise auch nicht als Parameter übergeben werden. Als Verständinsbeispiel: definiere eine globale Variable _global.test und setze diese auf 1. Übergib anstatt der Interval-Referenz _global.test als Referenz. Starte dann neben dem RollOver einen zweiten Interval, der in 500 ms-Schritten _global.test um eines erhöht. Der Intveral-Parameter wird immer den Wert tracen, den er beim Interval-Aufruf gehabt hat - egal wie hoch _global.test in der Zwischenzeit ist! Alles klar?
__________________ There is no way to happiness, happiness is the way! - Buddha |
| | |
| | #4 (permalink) |
| ................ Registriert seit: Jun 2004
Beiträge: 15.890
|
Wie wäre es denn mal so? PHP-Code:
__________________ ternärer Konditionaloperator +++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++ |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Sep 2005
Beiträge: 36
|
ja das würde auch gehen, hab nun aber anderen wordaround gefunden, mit dem ich zufrieden bin: Code: // Die Funktion
_global.setMove = function(daClip:MovieClip, daStopY:String, daDirection:String) {
switch (daDirection) {
case 'up' :
if (daClip._y>daStopY) {
daClip._y--;
} else {
clearInterval(daClip.startMove);
}
break;
case 'down' :
if (daClip._y<daStopY) {
daClip._y++;
} else {
clearInterval(daClip.startMove);
}
}
};
// Die Auslösung
this.holderOfAll_mc.onRollOver = function() {
trace('->onRollOver<-')
clearInterval(this.startMove);
this.startMove = setInterval(setMove, 1, this, 35, 'up');
};
this.holderOfAll_mc.onRollOut = function() {
trace('->onRollOut<-')
clearInterval(this.startMove);
this.startMove = setInterval(setMove, 1, this, 75, 'down');
}; Der Effekt: Die Navi fährt hoch und runter... Anschauen: http://www.alfredlaws.com/navigation.html Gruss Laws |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Sep 2005
Beiträge: 36
|
Ok, hier die .fla-Datei: http://www.alfredlaws.com/navigation.fla Edit: Hab den Code erst teilweise so dynamisch wie möglich geschrieben...am Schluss sollte alles per XML geladen werden können. Geändert von laws (10-03-2006 um 14:52 Uhr) |
| | |
| | #8 (permalink) |
| ................ Registriert seit: Jun 2004
Beiträge: 15.890
|
Gottogott.. Da denkt man, jetzt kommt ne Datei mit ein paar Zeilen und dann sowas .Ich denke, das Problem ist, dass dein Intervall schneller läuft, als die Frames des Films eingestellt sind. Das soll bedeuten: der kommt nicht hinterher. Eine Möglicheit wäre die Erstellung einer großen Fläche in der Größe des gesamten Menüs. Das sähe dann z.B. so aus: PHP-Code:
__________________ ternärer Konditionaloperator +++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++ |
| | |
| | #10 (permalink) |
| ................ Registriert seit: Jun 2004
Beiträge: 15.890
|
Naja, weil zwischen den MCs Lücken entstanden sind. Es geht übrigens auch, wenn du bei den ersten beiden Menüpunkten "upHoehe+10" benutzt und nur beim letzen "upHoehe".
__________________ ternärer Konditionaloperator +++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++ Geändert von Der Frager (10-03-2006 um 15:48 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |