Kiusupunn ActiveX, osa II
16.04.2006 | LembitParim Flash’i kasutamise lahendus uuenenud IE-ga
Üleeile kirjutasin sellest (Kiusupunn ActiveX, osa I), kuidas ühe abstraktse tarkvarapatendi rikkumine läks Microsoft’ile maksma pool miljardit taala ning läheb veel veebiarendajatele maksma nii mõnegi töötunni. Peale viimaste Microsoft’i tarkvarauuenduste installimist käitub Internet Explorer erinevate ActiveX-programmobjektidega (Flash, Director e. Shockwave, QuickTime jt) teistmoodi –OJECT, APPLET või EMBED tag’i kasutades veebilehele lisatud objektide kuvamisel nõuab IE kasutajalt nende aktiveerimist hiirekliki või klahvivajutusega. Selleks, et kindlustada kasutajate jaoks sujuv kogemus, tuleb seega ActiveX-objektide lisamiseks HTML-i rakendada uusi viise.
Oma olemuselt on probleemi lahendamine lihtne – aktiveerimist nõuab uuendatud IE vaid nende objektide puhul, mis istuvad n-ö "staatiliselt" HTML-koodis. Kui objekt kirjutatakse dokumenti näiteks JavaScript’i kaudu (document.write), siis probleemi ei teki. Et enamik mahukamaid veebilehti (portaalid) kasutab näiteks Flash’i lisamiseks just sarnast meetodit, peaks väga paljud senised lahendused kenasti edasi töötama.
Et konkurentsitult kasutatuim ActiveX-objekt veebis ongi Flash, siis lihtsaim näide IE uue käitumise tagajärjest on see, et Flash-bänneritele tuleb nüüd 2 korda klikkida, et jõuda bänneris viidatud lehele. Ent eriti tobedalt mõjub mõistagi sattumine mõnele 100% Flash –saidile (proovi, kui sul on IE). Parim lahendus uues olukorras Flash’i lisamiseks veebilehtedele on Geoff Stearn'i FlashObject.
TÄIENDUS 03.06.2006: FlashObject on nüüd SWFObject. Põhjuseks Adobe'i juristide surve Geoff Stearn'ile.
Lahendus Flashi jaoks – FlashObject
FlashObject sisaldab ühes välises JavaScript’i failis funktsioone nii Flash Player’i olemasolu ja versiooni tuvastamiseks kasutaja masinas kui Flash’i probleemideta lisamiseks veebilehekülje koodi. Skripti kasutamine on äärmiselt lihtne ja loogiline ning ühe suure lisaplussina on ka Flash Player’i tuvastamise ja alternatiivse sisu kuvamise meetodid väga hõlpsad kasutada (erinevalt Flash IDE-ga kaasa tulevatest lahendustest).
Lihtsaimal kujul näeb FlashObject’i kasutamine välja nõnda.
1. Kõigepealt tavaline JS-include lehekülje head-osasse.
2. Siis vajalikku kohta dokumendis üks div, kuhu sisse tuleb Flash.
Nagu näha, on alternatiivsisu lisamine puhuks, kui kasutajal ei ole Flash Player installitud, lihtsaimast lihtsam – sel juhul kuvatakse antud div’i sisu, sobiva Player’i leidmisel aga Flash ise ja alternatiivsisu ei näidata. Seega võiks üks praktiline FlashObject’i div olla näiteks selline.
3. Ja Flashi enda lisamiseks tavalise OBJECT ja EMBED tag’ide kombinatsiooni asemel säenne JavaScript’i jupp.
var fo = new FlashObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
fo.write("flashcontent");
</script>
Lihtne – Flash on siis ülaltoodud näites "movie.swf", ID ja nimega "mymovie", mõõtmetega 200*100 pikslit ja sinise taustavärviga. Nõutud Player’i versioon on 7, ent FlashObject tuvastab ka alamversioonid, seega võib kasutada ka näit. "6.0.65".
Atribuutide ja muutujate (Flashvars’i jaoks) lisamine on samuti hõlbus.
fo.addParam("wmode", "transparent");
fo.addParam("salign", "t");
fo.addVariable("variable1", "value1");
fo.addVariable("variable2", "value2");
fo.addVariable("variable3", "value3");
Miks FlashObject on parem kui paljud teised Flash’i veebilehele lisamise viisid, selgitab autor Geoff Stearn põhjalikult ja objektiivselt ise. Kasutanud ka mitmeid teisi meetodeid, olen tema argumentidega täiesti nõus. Stern’i skriptile viitab ka näiteks Flash Player’i tootejuht Emmy Huang oma blogis. Vaat et peamine põhjus just FlashObject’i kasutamiseks on aga minu jaoks viimasel ajal eelkõige see, et FlashObject tagab HTML-i valideerumise – EMBED tag ei kuulu ühtegi HTML-i või XHTML-i versiooni.
Lahendus ülejäänud vidinate jaoks
Ka QuickTime’i lisamisel tuleb appi supermees Geoff Stearn oma QTObject-skriptiga
Mõistagi on lahenduse välja pakkunud ka Õun ise.
Kui aga kasutad oma veebilehel erinevaid plug-in’e korraga, näit. Flash’i, QuickTime’i ja Director’it, siis on arvatavasti kõige mõistlikum lahendus võtta kasutusele Adobe’i ametlik lahendus IE aktiivsisu-probleemile. Rohkelt lugemist teema kohta leiab Adobe’i spetsiaalsest Active Content Developer Center’ist, miks kasutada just nende skripti, selgitab firma siin: Why Use the Adobe Solution?.
Paistab, et Adobe’i arendajate tööplaanid on niivõrd tihedad, et IE muudatuste sujuvamaks silumiseks ei olnud mahti teha extension’eid või update’e Flash’i ja Dreamweaver’i jaoks. Ometi kulutati palju aega ja vaeva Active Content Developer Center’i loomiseks... Igatahes, lahendused on olemas, kasutagem neid!

11.05.2006 kell 00:29
Äitähh, mina sain artiklist abi küll.