HighDots Forums  

Parameteruebergabe

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss Parameteruebergabe in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #11  
Old   
Ralf Weber
 
Posts: n/a

Default Re: Parameteruebergabe - 10-11-2004 , 05:12 AM






Hallo Daniel,
zu deinem Posting (Wed, 06 Oct 2004 18:37:27):

Quote:
Ralf Weber wrote:
Wird waehrend der Verarbeitung der Intervalle ein onmouseout-Ereignis
abgefangen? Es scheint nicht so!

Eigentlich schon, setze doch ein alert und prüfe es. Deine aktuell
laufende Funktion test() in der vermutlich die Animation läuft wird
dadurch aber nicht unterbrochen. Vielleicht ist da ein Denkfehler. ggf.
kannst Du auch mal eine URL zum Problem posten.
Das Ereignis wird aufgerufen, jedoch gibts da ein wahrscheinlich ein
Problem mit dem Abarbeiten der Funktionen. Schematisch sieht das Ganze
jetzt wie folgt aus:

mouseOver -> MoveIn()
mouseOut -> MoveOut()

MoveIn -> mouseIn = setInterval("moveInBy(1,element)",250);
MoveOut -> mouseOut = setInterval("MoveOutBy(-1,element)",250);

Dabei entsteht jetzt ein Problem wenn man mit der Maus zu schnell ueber das
Element faehrt. Dabei wird das alles ziemlich undurchsichtig welcher
Programmcode ausgefuehrt wird. Jedenfalls nach der visuellen Sicht was mit
dem Element geschieht. Manchmal wird das MoveOut nicht ausgefuehrt und
manchmal wird MoveOut nicht vollstaendig abgearbeitet.

Zu sehen unter: http://www.wonderer.de/jscript/rollover_fx.htm

MfG, Ralf...


Reply With Quote
  #12  
Old   
Ralf Weber
 
Posts: n/a

Default Re: Parameteruebergabe - 10-11-2004 , 05:15 AM






Hallo Daniel,
zu deinem Posting (Wed, 06 Oct 2004 18:37:27):

Quote:
Ralf Weber wrote:
Wird waehrend der Verarbeitung der Intervalle ein onmouseout-Ereignis
abgefangen? Es scheint nicht so!

Eigentlich schon, setze doch ein alert und prüfe es. Deine aktuell
laufende Funktion test() in der vermutlich die Animation läuft wird
dadurch aber nicht unterbrochen. Vielleicht ist da ein Denkfehler. ggf.
kannst Du auch mal eine URL zum Problem posten.
Das Ereignis wird aufgerufen, jedoch gibts da ein wahrscheinlich ein
Problem mit dem Abarbeiten der Funktionen. Schematisch sieht das Ganze
jetzt wie folgt aus:

mouseOver -> MoveIn()
mouseOut -> MoveOut()

MoveIn -> mouseIn = setInterval("moveInBy(1,element)",250);
MoveOut -> mouseOut = setInterval("MoveOutBy(-1,element)",250);

Dabei entsteht jetzt ein Problem wenn man mit der Maus zu schnell ueber das
Element faehrt. Dabei wird das alles ziemlich undurchsichtig welcher
Programmcode ausgefuehrt wird. Jedenfalls nach der visuellen Sicht was mit
dem Element geschieht. Manchmal wird das MoveOut nicht ausgefuehrt und
manchmal wird MoveOut nicht vollstaendig abgearbeitet.

Man muesste irgendwie sicherstellen, dass erst MoveIn bis zum Ende
(x-maliger Durchlauf des Intervalls) laeuft und dann MoveOut anfaengt.

Zu sehen unter: http://www.wonderer.de/jscript/rollover_fx.htm

MfG, Ralf...


Reply With Quote
  #13  
Old   
Ralf Weber
 
Posts: n/a

Default Ueberschneiden mehrerer Funktionen (was: Re: Parameteruebergabe) - 10-13-2004 , 11:18 AM



Hallo Daniel,
zu deinem Posting (Wed, 06 Oct 2004 18:37:27):

Quote:
Ralf Weber wrote:
Wird waehrend der Verarbeitung der Intervalle ein onmouseout-Ereignis
abgefangen? Es scheint nicht so!

Eigentlich schon, setze doch ein alert und prüfe es. Deine aktuell
laufende Funktion test() in der vermutlich die Animation läuft wird
dadurch aber nicht unterbrochen. Vielleicht ist da ein Denkfehler. ggf.
kannst Du auch mal eine URL zum Problem posten.
Das Ereignis wird aufgerufen, jedoch gibts da ein wahrscheinlich ein
Problem mit dem Abarbeiten der Funktionen. Schematisch sieht das Ganze
jetzt wie folgt aus:

mouseOver -> MoveIn()
mouseOut -> MoveOut()

MoveIn -> mouseIn = setInterval("moveInBy(1,element)",250);
MoveOut -> mouseOut = setInterval("MoveOutBy(-1,element)",250);

Dabei entsteht jetzt ein Problem wenn man mit der Maus zu schnell ueber das
Element faehrt. Dabei wird das alles ziemlich undurchsichtig welcher
Programmcode ausgefuehrt wird. Jedenfalls nach der visuellen Sicht was mit
dem Element geschieht. Manchmal wird das MoveOut nicht ausgefuehrt und
manchmal wird MoveOut nicht vollstaendig abgearbeitet.

Man muesste irgendwie sicherstellen, dass erst MoveIn bis zum Ende
(x-maliger Durchlauf des Intervalls) laeuft und dann MoveOut anfaengt.

Zu sehen unter: http://www.wonderer.de/jscript/rollover_fx.htm

MfG, Ralf...


Reply With Quote
  #14  
Old   
Ralf Weber
 
Posts: n/a

Default Re: Ueberschneiden mehrerer Funktionen - 10-15-2004 , 06:08 AM



Der Quellcode steht in http://www.wonderer.de/jscript/fx.js

Die ersten beiden Funktionen waren vom Anfang an dem ich beide Ereignisse
mit ein und der selben Funktion gestartet habe. (MoveYBy) Habe das jetzt so
umgestellt damit ich besser sehen kann welche Funktionen bei welchen
Ereignissen aufgerufen werden.

Kann mir keiner dabei helfen?
Ist das Problem vielleicht mit JS nicht zu bewerkstelligen?

vielen Dank schon mal, Ralf...

Reply With Quote
  #15  
Old   
Daniel Kirsch
 
Posts: n/a

Default Re: Ueberschneiden mehrerer Funktionen - 10-15-2004 , 06:49 AM



Ralf Weber wrote:
Quote:
Ist das Problem vielleicht mit JS nicht zu bewerkstelligen?
function MoveBy(x,y,elmID,count) {
var elm = document.getElementById(elmID);
if (elm) {
if (x)
elm.style.left = (parseInt(elm.style.left) + x) + "px";
if (y)
elm.style.top = (parseInt(elm.style.top) + y) + "px";

elm.moveCounter += count;
if ((count > 0 && elm.moveCounter >= elm.count) ||
(count < 0 && elm.moveCounter <= 0))
stopTimer(elm);
}
}

function MoveIn(elm,count){
stopTimer(elm);
elm.count = count;
if (typeof elm.moveCounter == "undefined")
elm.moveCounter = 0;
elm.timerID = setInterval("MoveBy(1,0,'" + elm.id + "',1)",50);
}

function MoveOut(elm) {
stopTimer(elm);
elm.timerID = setInterval("MoveBy(-1,0,'" + (elm.id) + "',-1)",50);
}

function stopTimer(elm) {
if (elm.timerID) {
clearInterval(elm.timerID);
elm.timerID = null;
}
}

für Dein DIV dann:
onmouseover="MoveIn(this,10)" onmouseout="MoveOut(this,10)"

Grüße
Daniel


Reply With Quote
  #16  
Old   
Daniel Kirsch
 
Posts: n/a

Default Re: Ueberschneiden mehrerer Funktionen - 10-15-2004 , 07:02 AM



Daniel Kirsch wrote:
Quote:
function MoveBy(x,y,elmID,count) {
var elm = document.getElementById(elmID);
if (elm) {
Ergänze hier noch:

if (elm.moveCounter == 0 && count < 0)
return stopTimer(elm);

Dann sollte es keine Ausrutscher mehr geben.

Quote:
if (x)
elm.style.left = (parseInt(elm.style.left) + x) + "px";
if (y)
elm.style.top = (parseInt(elm.style.top) + y) + "px";

elm.moveCounter += count;
if ((count > 0 && elm.moveCounter >= elm.count) ||
(count < 0 && elm.moveCounter <= 0))
stopTimer(elm);
}
}
Generell empfehle ich Dir, den Animationskram in ein eigenes Objekt zu
packen, das dann auch die Timer-Geschichte etc. regelt.

Grüße
Daniel


Reply With Quote
  #17  
Old   
Ralf Weber
 
Posts: n/a

Default Re: Ueberschneiden mehrerer Funktionen - 10-15-2004 , 11:04 AM



Hallo Daniel,
zu deinem Posting (Fri, 15 Oct 2004 14:02:22):

Quote:
Generell empfehle ich Dir, den Animationskram in ein eigenes Objekt zu
packen, das dann auch die Timer-Geschichte etc. regelt.
Danke für deine Hilfe!
Das ist ne gute Idee, bisher habe ich in JS noch keine Objektorientierung
angebracht aber wenn das prinzipiell moeglich ist, sollte man das
vielleicht in Betracht ziehen.

Also noch mal Danke und Have a nice day, Ralf...


Reply With Quote
  #18  
Old   
Ralf Weber
 
Posts: n/a

Default Re: Ueberschneiden mehrerer Funktionen - 10-15-2004 , 11:06 AM



Hallo Daniel,
zu deinem Posting (Fri, 15 Oct 2004 14:02:22):

Quote:
Generell empfehle ich Dir, den Animationskram in ein eigenes Objekt zu
packen, das dann auch die Timer-Geschichte etc. regelt.
Danke für deine Hilfe!
Das ist ne gute Idee, bisher habe ich in JS noch keine Objektorientierung
angebracht aber wenn das prinzipiell moeglich ist, sollte man das
vielleicht in Betracht ziehen.

Also noch mal Danke und Have a nice day, Ralf...


Reply With Quote
  #19  
Old   
Ralf Weber
 
Posts: n/a

Default Re: Ueberschneiden mehrerer Funktionen - 10-16-2004 , 03:34 AM



Hallo Daniel,
zu deinem Posting (Fri, 15 Oct 2004 14:02:22):

Quote:
Generell empfehle ich Dir, den Animationskram in ein eigenes Objekt zu
packen, das dann auch die Timer-Geschichte etc. regelt.
Danke für deine Hilfe!
Das ist ne gute Idee, bisher habe ich in JS noch keine Objektorientierung
angebracht aber wenn das prinzipiell moeglich ist, sollte man das
vielleicht in Betracht ziehen.

Also noch mal Danke!

Have a nice day, Ralf...


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.