Kuidas korrektselt sisestada FLASH-rakendusi oma kodulehele?

FLASH on olnud algusest peale üheks kõige problemaatilisemaks www-lehtedel kasutatavaks tehnoloogiaks. Siinkohal ei hakka siiski pikka ajalugu ära rääkima ning teen vaid väikese kokkuvõtte.

Esmalt on FLASH probleemne, kuna nõuab võrgulehitejalt lisaseadistust (st. FLASH plug-in olemasolu). Viimastel aastatel pole sellega enam probleeme, kuna kõik populaarsemad lehitsejad suudavad kasutajat juhendada FLASH plug-in'i paigaldamisel.

Järgmisena tulevad mängu sellised asjaolud, mis on oluliseks faktoriks võrgulehtede loojaile - FLASH sisu ei loe otsingurobotid ning vahel on ka kasutajatel keerukas FLASH-lehel navigeerida. Viimast eriti siis, kui tegemist suuremate FLASH lehtedega, mille navigatsioon ja sisu eraldi FLASH-failide poolt rakenduses jms.

Kõige lõpuks see kõige suurem www-meistri mure. FLASH lisamisel www-lehele ei ole olemas väga hästi, st. kõigis oludes toimivat lahendust, mis pealegi vastaks standarditele. Aastaid kasutati selleks standardissse mittekuuluvat embed elementi. Seda kuni selle ajani, mil patendiprobleemi tõttu lisati Microsoft Internet Explorer'is FLASH-iga "suhtlemisele" vaheetapp - enne, kui saab klõpsata kas FLASH-reklaamil või vajutada FLASH-i abil loodud navigatsiooninupul, tuleb teha lisaklõps selle FLASH-objekti "aktiveerimiseks".

Miks siis ikkagi kasutada?

FLASH on olnud probleemide allikaks juba aastaid. Ometigi on tegemist väga populaarse tehnoloogiaga. Peamised eelised teiste konkureerivate tehnoloogiatega võrreldes:

  • võimalik luua sujuvaid, vektorgraafilisi animatsioone, ilusaid disainiefekte ning ka keerukamaid rakendusi (mängud jms);
  • viimastel aastatel lisandunud väga hea ja universaalne videode kuvamise võimalus;
  • kõik eelpool loetletu saavutatakse suhteliselt vähe klient-arvuti jõudlust nõudes (võrreldes näiteks Java tehnoloogiaga).

Mis siis teha?

On problemaatiline, kuid populaarne tehnoloogia. Internet Exploreri poolt tekitatud uusimast probleemist kõrvalehiilimiseks alustati jõudsalt JavaScript tehnoloogial erinevate keerukate programmide kirjutamist, mille tulemuseks on täna väga suurte JavaScript failide rakendamine lehelaadimisel kasutaja arvutis. Aga ka need JavaScript programmid loovad tihtipeale ebakorrektset XHTML koodi.

2002. aastal kirjutas Drew McLellan'i nimeline isik populaarses www-ajakirjas A List Apart artikli, kus tutvustab puhast ning korrektset meetodit, mis sobib väikeste FLASH failide (reklaamid, disainielemendid jms) korrektseks sidumiseks www-dokumendiga. Meetodi nimeks on Flash Satay.

Mainitud artikli kokkuvõtteks võib öelda, et Drew McLellan "avastas" korrektse võimaluse, mida kõik populaarsemad võrgulehitsejad (kes üldse FLASHi toetavad), sh. Internet Explorer, suudavad kuvada. Ja see kood näeb siis välja selline:

<object type="application/x-shockwave-flash" data="flashfail.swf" width="100" height="100">
<param name="movie" value="flashfail.swf" />
</object>

Korrektne kood, kuid probleemiks jääb asjaolu, et mõni aasta hiljem tekib Internet Explorer'iga aktiveerimis-probleem. Nagu varem mainitud, on sellest probleemist mööda hiilimiseks loodud terve seeria väga keerukaid JavaScript rakendusi. Prooviks aga midagi lihtsamat. Eksisteerib ka väga lihtne võimalus JavaScript abil IE probleemi kõrvaldamiseks. Kirjutame väga lihtsa JavaScript faili, kus sees näiteks kaks funktsiooni. Neile funktsioonidele anname vajadusel ette hulga parameetreid. JavaScript fail võiks välja näha selline:

function FlashiKribajaLingiga(flashiasukoht,laius,korgus,url) {
document.write('<div><object type="application/x-shockwave-flash" data="' + flashiasukoht + '?clickTag=' + url + '" width="' + laius + '" height="' + korgus + '">');
document.write('<param name="movie" value="' + flashiasukoht + '?clickTag=' + url + '" />');
document.write('<param name="wmode" value="transparent" /></object><div>');
}
function FlashiKribajaLingita(flashiasukoht,laius,korgus) {
document.write('<div><object type="application/x-shockwave-flash" data="' + flashiasukoht + '" width="' + laius + '" height="' + korgus + '">');
document.write('<param name="movie" value="' + flashiasukoht + '" />');
document.write('<param name="wmode" value="transparent" /></object><div>');
}

Nüüd on vaja veel vaid see kood salvestada eraldi .js failina ning siduda soovitud dokumendiga. Selleks vajalik järgmine rida head piirkonda:

<script type="text/javascript" src="flash.js"></script>

Dokumendi enda sees tuleks kasutada FLASHi esilekutsumiseks juba järgmist koodi:

<script type="text/javascript">
FlashiKribajaLingita("flashfail.swf",100,100);
</script>
<noscript>
<object type="application/x-shockwave-flash" data="flashfail.swf" width="100" height="100">
<param name="movie" value="flashfail.swf" />
<param name="wmode" value="transparent" />
</object>
</noscript>

Selle meetodi kasutamise juures tuleb meeles pidada:

  • toimib vaid juhul, kui JavaScript eraldi failina dokumendiga linkida;
  • toimib Internet Exploreris hästi vaid siis, kui fail on väike - st. laetakse kiirelt alla; ei võimalda kuvada allalaadimisriba;

Suuremate FLASH failide puhul tekib probleem laadimisega - senikaua kuni FLASHi laadidatkse, näeb kasutaja IE-s tühja välja. Siiski sobib antud meetod isegi YouTube ja teiste sarnaste videode lisamiseks, kuna nende põhirakendus laaditakse alla vägagi kiirelt, videolaadimist see ei sega.