wZine

RND bildītes javaskriptā
HVZ kad by web@listserv.parks.lv
Reviewed on 16 Jun 1999 by Laacz


   Te mūsu pusē, te pat listē, parādījās jautājumiņš par tēmu - a kā uztaisīt to, lai fisu laiku rādītos randomīgas bildītes? Nu tad apmēram šādi, kā apstāstīts te taps. No sākuma pačoli sampli un beigās iepastēto sourci šeit.

   Un tagad sāksim bazaru. Značit, sākumā mēs sadefinējam masīvu ar izsamēriem [0..35], iekš kura stāv mums jau sadefinēti iespējamo bildīšu nosaukumu pārti.

var nosaukumi=new Array(
            '0', '1', '2', '3', '4', '5', '6', '8', '9',
            '-', 'a', 'b', 'c', 'a', 'e', 'f', 'g', 'h',
            'i', 'j', 'k', 'l', 'm', 'a', 'o', 'p', 'q',
            'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z')

   Tad mēs ņemam un uztaisām vēlvienu masīvu, kurā preloadojam bildītes iekš masīva bildes, kura izsamērs ir pēc vajadzības liels. (lai tās nelādētos efekta laikā, kas piebremzētu visu kaifu).

var bildes = new Array

for (i=0;i<39;i++) {
  bildes[i] = new Image()
  bildes[i].src = '../bildes/alpha/a'+nosaukumi[i]+'.gif'
}

Tālāk nāk smuka tabuliņa un source.

   Tālāk nāk kentrālais kods, kurš ta arī mums dod visu maizi. Nu to if (!... vari neskatīties, tas vienkārši teff uzbrauc, ja nevaidi lietodams ineta sexploreri. Bet tālāk...

function rrr() {
  n = Math.round(Math.random()*35)
  document.images[0].src = bildes[n].src
  document.all.v.innerHTML = '   '+bildes[n].src
  setTimeout("rrr()", 300)
}

rrr()

   Funkcija rrr() dara to, ka izrēķina randomīgu numuru un iegāz to ieš mainīgā n, kur tas arī īsu laiku paliek. Tālāk, mēs bildei ar indeksu [0] (varēja jau rakstīt arī nosaukumu, bet ko nu es te...), nomainām src parametru uz kaut ko citu, to biš uz masība bildes[n].src. Vēl debugam piemetam klāt blakus cellā to pašu ceļu uz bildi. Pēc tam uzliekam tādu brīnumu kā setTimeout, kas nozīmē, ka pēc 300 milisekundēm izpildīsies tas, kas ir pirmajā parametrā pēdiņās. Un kad tas izpildīsies, mēs saucam atkal to rrr(), lai notiktu viss atkal.

   Esmu pārliecināts, ka ne pārāk viss ir saprotams, bet nu .. sorry .. ā .. vēl viena liet - tas ir viss šai reize. Moš kāddien padomāsu arī pie Netskeipa versijas šamajam brīnumam :)



Banneru sistēma BBA
Banneru sistēma BBA