Skocz do zawartości
hex1384

Poruszanie Sie Dwoch Obiektow[javascript]

Rekomendowane odpowiedzi

witam

chce zrobic poruszanie sie dwoch elementow na tablicy ale jest jakis blad i nie moge go znalezc

<html>

<head>

<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">

<script >

 

 

function animacja()

{

var tab=new Array();

tab[0]=Array("anim",100,200,1,0);

tab[1]=Array("anim1",300,100,1,0);

 

for(i=0;i<=tab.length;i++)

{

if(tab[4]==0) tab[1]++;

else tab[1]--;

 

if(tab[3]==1) tab[2]++;

else tab[2]--;

 

 

if(tab[1]<=0) tab[4]=0

else if(tab[1]>=document.body.offsetHeight)

tab[4]=1;

 

if(tab[2]<=0) tab[3]=1;

else if(tab[2]>=document.body.offsetWidth)

tab[3]=0;

 

 

 

}document.getElementById('anim').style.left=tab[1];

document.getElementById('anim').style.top=tab[2];

document.getElementById('anim1').style.left=tab[1];

document.getElementById('anim1').style.top=tab[2]

setTimeout("animacja()",5,"javascript");}

</script>

 

<style >

#anim

{

position:absolute;

left:0px;

top:0px;

}

#anim1{

position:absolute;

right:300px;

top:0px;

}

</style>

</head>

<body onload="animacja()">

<img id="anim" src="ball.gif" >

<img id="anim1" src="ball1.gif" >

</body>

</html>

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Pierwsza sprawa.. umieszczaj kod w odpowiednich znacznikach, bo to co wkleiles to sie raczej ciezko czyta.

 

Co do bledow to sa 2 podstawowe. Jeden skladniowy zaraz za petla, w linijkach w ktorych zmieniasz polozenie elementow. Odwolujesz sie tam do zmiennej i, ktora juz w tym momencie ma wartosc przekraczajaca dlugosc tablicy.. ja bym tam na stale zamiast tego i wpisal indexy 0 i 1.

Drugi blad to juz bardziej blad logiczny. Definicje tablicy z parametrami masz w funkcji, a z racji ze wywolujesz ja za kazdym razem to te parametry sa resetowane.. bez sensu. Jak umiescisz definicje tej tablicy (lacznie z jej wypelnieniem) jako globalna to bedzie ok.

Pozatym brakuje warunku przerwania animacji, ale to pewnie wiesz.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

czyli ma byc bez fora i

if(tab[0][4]==0) tab[0][1]++;else tab[0][1]--;if(tab[0][3]==1) tab[0][2]++;else tab[0][2]--;if(tab[1][4]==0) tab[1][1]++;else tab[1][1]--;if(tab[1][3]==1) tab[1][2]++;else tab[1][2]--;
jesli tak to nie o to mi chodzilo bo jesli bede mial 100 elemntow to 100 razy bede musial kopiowac i zmieniac i Edytowane przez hex1384

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...