Flash i w3c validacija

1

Flash i w3c validacija

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3760
  • Gde živiš: 127.0.0.1

Svako ko postuje w3c web standardne, a u dizajniranju sajtova koristi flash (*.swf) animacije, dolazi do problema: kako "ubaciti" *.swf a da pri tom kod ostane validan.

Idemo redom:

Korak 1: Eksportovani html kod za *.swf

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="468" height="60" title="title"> <param name="movie" value="flash.swf" /> <param name="quality" value="high" /> <param name="allowScriptAccess" value="sameDomain" /> <embed src="flash.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" width="468" height="60"></embed> </object>

i rezultat validacije je:
Citat:Validation Output: 8 Errors

Svih 8 gresaka je posledica toga sto embed tag nije definisan po w3c standardu.

Korak 2: Izbacivanje nevalidnog koda

Sta dalje? Prvo, izbaciti kompletan embed tag:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="468" height="60" title="title"> <param name="movie" value="flash.swf" /> <param name="quality" value="high" /> <param name="allowScriptAccess" value="sameDomain" /> </object>

Ovaj kod je vec validan, ali postoji jedan problemcic: radi samo u Internet Exploreru. Zasto? classid koji je ovde naveden je specifican za IE, dovodeci do toga da nonIE browseri jednostavno ignorisu object tag.

Korak 3: Sredjivanje koda za nonIE browsere

<object type="application/x-shockwave-flash" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="468" height="60" title="title"> <param name="movie" value="flash.swf" /> <param name="quality" value="high" /> <param name="allowScriptAccess" value="sameDomain" /> </object>

Ni ovo nece pokrenuti *.swf u nonIE browserima, ali resenje ja sve blize. U cemu je sad problem? Problem je u codebase atributu, koji sadrzi link do Macromedijinog sajta, sto je nepravilna upotreba ovog atributa. Linkovi bi trebalo da budu na istom domenu, preko cega IE prelazi, ali FF drzi do sigurnosti i jednostavno nece pustiti *.swf.

Korak 4: codebase i sigurnost u FF

<object type="application/x-shockwave-flash" width="468" height="60" title="title"> <param name="movie" value="flash.swf" /> <param name="quality" value="high" /> <param name="allowScriptAccess" value="sameDomain" /> </object>

Kod je sve manji i manji, jos uvek je validan, ali nece da radi u FF. U cemu je problem?

Korak 5: DATA atribut

U data atributu, koji nije definisan u okviru object taga. U slucaju da se definise, to izgleda ovako:

<object type="application/x-shockwave-flash" width="468" height="60" title="title" data="flash.swf"> <param name="movie" value="flash.swf" /> <param name="quality" value="high" /> <param name="allowScriptAccess" value="sameDomain" /> </object>

I dobijamo resenje: validan HTML kod za *.swf koji radi svuda. Ukoliko je vas flash fajl relativno mali, i ne koristi preloader, ovo je sve sto vam treba, u suprotnom...

Korak 6: Preloader za velike fajlove

ALI ovo resenje radi SAMO za fajlove reda velicine 1-100 kb, pod uslovom da nemaju preloader. Svi fajlovi koji imaju preloader, izgubice njegovu funkciju, jer, ukoliko se kod ispise na ovaj nacin, flash mora biti ucitan skroz da bi "krenuo". Sta sad?

Predpostavimo da imate flash fajl velicine 500KB, i da on ima preloader. Kako ga pustiti, bez cekanja da se ucita? Jednostavno. Napravite malecni (par KB) flash player, i odatle pozovete veliki flash fajl. Deluje malcice glupo ali radi: preloader se vidi, kod je validan, radi u svim browserima.

Mane validnog html koda

OSIM sto IE i slicni browseri nece update-ovati flash plugin u slucaju da je to potrebno. FF hoce, ali codebase atribut je jedini nacin da IE shvati gde se nalazi novi flash plugin. Sta sad? Dva resenja su moguca:

1) napraviti mali flash fajl, recimo 1px*1px koji osim sto sadrzi codebase atribut nema drugu svrhu. FF ga nece pustiti, ali to i nije toliko bitno. Vazno je da korisnici IE browsera mogu da update-uju flash plugin. Bitno je da kod tog fajla bude sredjen kao u koraku 2.

2) definisati alternativni sadrzaj: object tag dozvoljava "child" elemente, i ucitava ih redom, po potrebi. Ako browser ne moze da ucita prvi element, ucitava drugi, ako ne moze ni drugi, onda treci i tako redom...

<object type="application/x-shockwave-flash" width="468" height="60" title="title" data="flash.swf"> <param name="movie" value="flash.swf" /> <param name="quality" value="high" /> <param name="allowScriptAccess" value="sameDomain" /> <img src="noflash.gif" width="468" height="60" alt=""> </object>

i to je to Smile vas flash fajl sada ima validan kod, radi svuda, bez obzira na browser i velicinu, a cak i u slucaju da ga je nemoguce prikazati, ne ostavlja prazan prostor vec prikazuje alternativnu sliku.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • nneexx 
  • Novi MyCity građanin
  • Pridružio: 31 Okt 2009
  • Poruke: 2

Embarassed Nadjoh ovaj topic pa prvo da se zahvalim autoru na detaljima koje je objasnio a potom da pitam posto sam ja pocetnik na ovom polju...
Treba mi pomoc da postavim flash (uradio sam papgaje) na forumu ...http://senegalskijojo.top15.eu/forum

gde postaviti...swf i koji kod staviti ja sam stavljao neke ali dobijao sam prazan kvadrat, mozda ne umem putanju do flesha da postavim. GUZ - Glavom U Zid



offline
  • zend  Male
  • Počasni građanin
  • Pridružio: 22 Okt 2009
  • Poruke: 900
  • Gde živiš: Pancevo

Moras da na kazes gde tacno zelis da se nalazi flash na forumu.
Posto nisi rekao recicu ti gde to uraditi

Forum/Administrator/Teme i izgledi/Izmeni teme/Pogledajte predloške i datoteke u ovoj temi/index.template.php ..::: Na početku linije 176 :::..
pa sada tu ubaci gde zelis da se nalazi ali pazi da sve bude pod

echo
jer ako nije nece ti raditi....
i naravno ubacis u publickHtml u folder gde ces da smestis flash i samo napravis putanju do flasha

evo npr kod mene je ovako

/home3/alfa-web/public_html/forum/attachments

ovo je putanja neceg drugog ali ti na tu foru odradi sebi za flash

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3760
  • Gde živiš: 127.0.0.1

Cek, iw4ne, zasto bi apsolutnu Win putanju menjao apsolutnom Linux putanjom? Jer, kao takva, apsolutna putanja radi samo na mestu za koje je namenjena. Na svim ostalim, jok Wink A i velika verovatnoca je da ce da se zezne...

Niti mora echo - jednostavno moze da zatvori php tag ( ?> ), pastuje HTML i onda opet otvori php tag ( <?php ).

@nneex: postavi swf fajl u public_html folder (na nekim hostovima: www, html, i ostale varijacije), a onda u templejt ubaci kod iz 5. koraka. Vodi samo racuna o imenu swf fajla, kao i o visini i sirini (ime fajla menjas u data atributu object taga i value atributu param taga, gde je name movie).

offline
  • zend  Male
  • Počasni građanin
  • Pridružio: 22 Okt 2009
  • Poruke: 900
  • Gde živiš: Pancevo

ne nego sam se ja par puta zeznuo oko toga pa zato kazem.......
poslusacu savet Wink

offline
  • Pridružio: 19 Jan 2010
  • Poruke: 2

Napisano: 19 Jan 2010 2:34

Rasta, imam problem. Uradio sam slideshow u flashu i ubacio ga uz pomoc DW na stranicu.. Radio je u FF i Operi, ali nije u IE i Google Chrome.
Posto sam primenio tvoj savet i promenio kod, proradio je u Google Chrome, ali IE i dalje ne mrda! Stvarno vise ne znam sta mi je ciniti. Kod sam pregledao hiljadu puta, u svim browserima radi, samo IE zeza.
Pojavi mi se samo cisto bela povrsina, dimenzija slideshowa.
Ako imas neki savet, bio bih zahvalan!

Dopuna: 19 Jan 2010 2:38

ps.

I jos bih dodao da jedan rolover koji sadrzi i mini animaciju iz fireworksa(uz pomoc frejmova) zeza u IE, mada nista strasno.. U pitanju je IE 7

Da nije nesto do mog browsera?

offline
  • zend  Male
  • Počasni građanin
  • Pridružio: 22 Okt 2009
  • Poruke: 900
  • Gde živiš: Pancevo

Nemoj mani se IE bile su teme o IE pretrazivacu.....Iskoristi pretragu

offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

@MileJanjicar

Ako radi u jednima a ne u IE dakle do njega je, updateuj flash za njega, obidji nekoliko težih flash sajtova pa vidi da li ti tamo sadržaj radi Smile

offline
  • Pridružio: 19 Jan 2010
  • Poruke: 2

flash je 10ka, shockwave plejer sam takodje skinuo, mislim da je 11ica. Probao sam teze flash sajtove, rade svi.
Nesto sam juce petljao oko podesavanja ActiveX opcija u browseru i sada sam dobio da kada otvorio stranicu, pise ActiveX has blocked this content... Pa kada ja kliknem allow, on mi opet otvori bez slideshow-a.
Trazio sam po netu i vidim da IE 6 i 7 imaju taj bug jer je Microsoft izgubio neko sudjenje oko embed tagova, ili tako nesto, pa su posle toga updejtovali IE i onda su poceli problemi. Probao sam sva resenja koja su ljudi nudili, ali nista nisam dobio.

Mislim da cu odustati, ne mogu da se smaram. Provericu da li je IE8 ispravio bug, pa ako jeste, odlicno.

Hvala na odgovoru! Pozz

offline
  • Pridružio: 12 Jul 2006
  • Poruke: 3
  • Gde živiš: Subotica

E taj validator mi ide na ... Smile Još uvek ne podržava CSS3 a većina browsera (IE 8 još ne) podržavaju HTML5 i CSS3.

Uradiš sajt da ti bude u skladu sa novim "standardima" i onda validator sajta koji donosi te standarde pokazuje greške Smile

Ko je trenutno na forumu
 

Ukupno su 898 korisnika na forumu :: 25 registrovanih, 2 sakrivenih i 871 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., anta, babaroga, bojcistv, Boris BM, darkangel, GAGI, GandorCC, ikan, Ilija Cvorovic, indja, Kandrbandrdzilo, karevski, ladro, lcc, Magistar78, Milometer, novator, procesor, robertino, sevenino, shlauf, SlaKoj, stagezin, tmanda323