Archivlink: javarea.de Forum > JavaScript > setTimeout zu langsam
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > setTimeout zu langsam

Pages: [1]

geschrieben von 2005 am 08.11.2006 - 16:58
ich hab ein Scipt geschrieben, dass einen DIV-Container von A nach B bewegt.
hier der Code:
HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 
52: 
53: 
54: 
55: 
56: 
57: 
58: 
59: 
60: 
61: 
62: 
63: 
64: 
<script>
var x = new Array();
var y = new Array();
var count = 0;

function makeline(posx, posy, zux, zuy) {
count = 0;
var akx = posx;
var aky = posy;
var diffx = zux - posx;
var diffy = zuy - posy;
var wx = diffx / diffy;
var wy = diffy / diffx;
var lang = 0;
var oft = 0;
var rich = false;
var zahl = 0;
if (wx > wy) {
lang = wx;
oft = diffy;
} else {
lang = wy;
oft = diffx;
rich = true;
}
var fertig = false;
while (count != oft) {
var other = 0;
if (zahl >= lang) {zahl = 0; other = 1;}
if (rich) {
akx++;
aky += other;
x[count] = akx;
y[count] = aky;
} else {
aky++;
akx += other;
x[count] = akx;
y[count] = aky;
}
count++;
zahl++;
}
}

function goline(objektid) {
move(0, objektid, x, y);
}

function move(bei, objektid, ax, ay) {
document.getElementById('move').style.left = x[bei];
document.getElementById('move').style.top = y[bei];
if (bei != x.length) {
setTimeout("move("+(bei + 1)+", "+objektid+", "+ax+", "+ay+")", 10);
}
}

function start() {
makeline(50, 50, 159, 248);
goline('move');
}
</script>
<body onLoad="start();">
<div id="move" style="position: absolute; width: 50px; height: 50px; border: #000000 solid 1px; top: 0px; left: 0px;">hallo</div>


die html seite ist jetzt nicht vollständig, weil ich das nur testen wollte.
die geschwindigkeit ist mir zu gering, wie bekomme ich sie höher?
und warum passiert ein fehler, wenn ich bei der funktion move
HTML-Quelltext
1: 
'move'

durch
HTML-Quelltext
1: 
objektid

und
HTML-Quelltext
1: 
x[bei]

durch
HTML-Quelltext
1: 
ax[bei]

ersetze?

Ich freue mich auf jede antwort!

geschrieben von okley am 08.11.2006 - 21:00
Du führst die Funktion move nur alle 10 Millisekunden aus. Das gibts du doch mit dem zweiten Parameter von setTimeout an. Sofern dein Code sonst funktioniert, müsstest du mit 1 Milliskekunde schneller sein ;)

http://de.selfhtml.org/javascript/o....et_timeout

geschrieben von 2005 am 08.11.2006 - 21:11
nach ca. 100 Milisekunden, bleibt die Geschwindigkeit die gleiche, das ist das Problem.


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.