script traag in firefox
ik heb een script dat perfect werkt. alleen heb ik het probleem dat als ik het in firefox draai de cpu redelijk belast wordt en dat het erg traag gaat. Terwijl dat als ik het in chrome draai alles perfect verloopt en het zeer vlot loopt.
kan iemand mij vertellen wat ik kan doen om dit script sneller te maken in firefox?
Ik heb niet meteen een idee wat ik kan veranderen om het probleem te verhelpen.
alvast bedankt
Jonas
dit is de link naar het script
http://jonasvermeulen.0fees.net/school/topfruit%20game/example.htm
Code (php)
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
65
66
67
68
69
70
71
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
65
66
67
68
69
70
71
<script>
var fallObjects=new Array();
function newObject(url,height,width){
//fallobjects container
fallObjects[fallObjects.length]=new Array(url,height,width);}
//aantanl objecten, afwijking van pad, valsnelheid, wind
var numObjs=5, waft=5, fallSpeed=20, wind=0;
newObject("apple.png",15,15);
newObject("orange.png",15,15);
newObject("pear.png",15,15);
newObject("banana.png",15,15);
//de grootte van het venster ophalen
function winSize(){
winWidth=document.getElementById('container').offsetWidth;
winHeight=window.innerHeight*0.75;
}
//functie om venter te berekenen indien scrollbalken
function winOfy(){
winOffset=(moz)?window.pageYOffset:document.body.scrollTop;
}
//nieuw valobject genereren
function fallObject(num,vari,nu){
objects[num]=new Array(parseInt(Math.random()*(winWidth-waft)),-30,(parseInt(Math.random()*waft))*((Math.random()>0.5)?1:-1),0.02+Math.random()/20,0,1+parseInt(Math.random()*fallSpeed),vari,fallObjects[vari][1],fallObjects[vari][2]);
if(nu==1){
//valobject toevoegen aan de container
document.getElementById('container').innerHTML += '<img z-index="700" id="fO'+i+'" style="position:absolute;" src="'+fallObjects[vari][0]+'">';
}
}
//object laten vallen
function fall(){
//alle objecten overlopen
for(i=0;i<numObjs;i++){
var fallingObject=document.getElementById('fO'+i);
if((objects[i][1]>(winHeight-(objects[i][5]+objects[i][7])))||(objects[i][0]>(winWidth-(objects[i][2]+objects[i][8])))){
fallObject(i,objects[i][6],0);
}
objects[i][0]+=wind;objects[i][1]+=objects[i][5];objects[i][4]+=objects[i][3];
leftMargin = objects[i][0]+(objects[i][2]*Math.cos(objects[i][4]));
//punten tellen
if (Apepos > leftMargin && Apepos < (leftMargin + 20)){
punten ++;
document.getElementById('punten').value = punten;
}
document.getElementById('apepos').value = Apepos;
document.getElementById('leftmargin').value = leftMargin;
document.getElementById('punten').value = tempX;
//positie instellen voor het object
with(fallingObject.style){
top=objects[i][1]+winOffset;
left= leftMargin;
}
}
//timeout instellen voor de val functie
setTimeout("fall()",31);
}
var objects=new Array(),winOffset=0,winHeight,winWidth,togvis,moz=(document.getElementById&&!document.all)?1:0;winSize();
for (i=0;i<numObjs;i++){
fallObject(i,parseInt(Math.random()*fallObjects.length),1);
}
window.onscroll=winOfy;
window.onresize=winSize;fall();
</script>
var fallObjects=new Array();
function newObject(url,height,width){
//fallobjects container
fallObjects[fallObjects.length]=new Array(url,height,width);}
//aantanl objecten, afwijking van pad, valsnelheid, wind
var numObjs=5, waft=5, fallSpeed=20, wind=0;
newObject("apple.png",15,15);
newObject("orange.png",15,15);
newObject("pear.png",15,15);
newObject("banana.png",15,15);
//de grootte van het venster ophalen
function winSize(){
winWidth=document.getElementById('container').offsetWidth;
winHeight=window.innerHeight*0.75;
}
//functie om venter te berekenen indien scrollbalken
function winOfy(){
winOffset=(moz)?window.pageYOffset:document.body.scrollTop;
}
//nieuw valobject genereren
function fallObject(num,vari,nu){
objects[num]=new Array(parseInt(Math.random()*(winWidth-waft)),-30,(parseInt(Math.random()*waft))*((Math.random()>0.5)?1:-1),0.02+Math.random()/20,0,1+parseInt(Math.random()*fallSpeed),vari,fallObjects[vari][1],fallObjects[vari][2]);
if(nu==1){
//valobject toevoegen aan de container
document.getElementById('container').innerHTML += '<img z-index="700" id="fO'+i+'" style="position:absolute;" src="'+fallObjects[vari][0]+'">';
}
}
//object laten vallen
function fall(){
//alle objecten overlopen
for(i=0;i<numObjs;i++){
var fallingObject=document.getElementById('fO'+i);
if((objects[i][1]>(winHeight-(objects[i][5]+objects[i][7])))||(objects[i][0]>(winWidth-(objects[i][2]+objects[i][8])))){
fallObject(i,objects[i][6],0);
}
objects[i][0]+=wind;objects[i][1]+=objects[i][5];objects[i][4]+=objects[i][3];
leftMargin = objects[i][0]+(objects[i][2]*Math.cos(objects[i][4]));
//punten tellen
if (Apepos > leftMargin && Apepos < (leftMargin + 20)){
punten ++;
document.getElementById('punten').value = punten;
}
document.getElementById('apepos').value = Apepos;
document.getElementById('leftmargin').value = leftMargin;
document.getElementById('punten').value = tempX;
//positie instellen voor het object
with(fallingObject.style){
top=objects[i][1]+winOffset;
left= leftMargin;
}
}
//timeout instellen voor de val functie
setTimeout("fall()",31);
}
var objects=new Array(),winOffset=0,winHeight,winWidth,togvis,moz=(document.getElementById&&!document.all)?1:0;winSize();
for (i=0;i<numObjs;i++){
fallObject(i,parseInt(Math.random()*fallObjects.length),1);
}
window.onscroll=winOfy;
window.onresize=winSize;fall();
</script>
Graag in het vervolg bij code, [code] [/code] tags gebruiken. [/modedit]
Gewijzigd op 17/04/2011 23:02:01 door Bas IJzelendoorn
Bij mij werkt dat in beide browsers prima. Heb je wel al firefox 3?
het gaat nu inderdaad een pak sneller.
en ik maar zoeken hoe het komt dat het zo traag gaat.
bedankt :)
Misschien leuk voor jou, een alert op de bezoeker afvuren wanneer deze een verouderde browser heeft :-)
In IE werkt het helemaal niet!
ja, dat weet ik, is nog iets met de x en y bepaling van de muis, maar daar ben ik al bezig met een oplossing. grootste zorg was eigenlijk dat het zo traag ging in firefox