Autor Zpráva
Miroslav Charvát
Profil
Dobrý den,

pokud vložím do sránky například následující kód:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swfl ash.cab#version=6,0,0,0"
width="500"
height="500"
id="draw" align="">
<param name=movie value="draw.swf">
<param name=menu value=false>
<param name=quality value=best>
<param name=bgcolor value=#ffffff>
<embed src="draw.swf" menu=false quality=best bgcolor=#ffffff width="500" height="500" name="draw" align="" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>

<br />Vykres produktu - pokud se nezobrazil, nemate pravdepodobne povoleno prehravani animaci Macromedia Flash

</object>

mel vy se v prohlizeci podle vsech pravidel zobrazit nahradni text: "Vykres produktu ...." pouze v pripade, ze objekt nebude prohlizecem podporovan. U IE 6 to tak funguje, avsak u Firefoxu a jinych prohlicecu zalozenych na Gecku se text zobrazi, i kdyz je Flash spusten bez problemu.

Jedna se o nedostatek prohlizece nebo neco delam blbe?

Diky za pomoc.
Leo
Profil
Rekl bych, ze pokud se dovolavate pravidel, mel byste nejdriv vyhodit element embed, nic takovyho v HTML neni:

http://www.w3.org/TR/html4/index/elements.html

O tom, jak spravne vkladat Flash na stranku se doctete tady:

http://www.alistapart.com/articles/flashsatay/

Leo
Miroslav Charvát
Profil
Jenze kdyz vyhodim EMBED, tak FF nezobrazi nic, i kdyz ma flash povoleny ... at uz je stranka jako HTML 4.01 nebo XHTML

S EMBED alternativni text podle meho nemuze souviset, nebo snad ano?
Leo
Profil
Zkuste si projit ten clanek na alistapart a zkusit to, Leo
Miroslav Charvát
Profil
To jsem samozrejme zkusil, donce i
http://interval.cz/clanek.asp?article=3184
a uz zkousel lecos.

Jenze nikde nikdo neresi problem s alternativnim textem.
Jen EMBED a ta nahrada z uvedenych clanku tj. obal DIV a streamovani.
Nicmene dik za radu.
Leo
Profil
Alternativni obrazek funguje, tak v nejhorsim tam dejte to upozorneni jako obrazek, s textem jsem to priznam se nezkousel, Leo
Leo
Profil
A nebo jeste lip - dejte tam obrazek ktery bude nahradou toho Flashe, Leo
DoubleThink
Profil *
Pánové, nikdo se prosím neuražte, ale toto všechno jsou pěkné žvásty.

Důvod je naprosto jasný:

<object který se nezobrazí>

<embed který se zobrazí>
<text který se taky zobrazí>

</object>

Mozilla jak známo neumí ActiveX, takže atribut classid nechápe a nezná - celý objekt tak jde do kytek a zobrazí se alternativní obsah - v našem případě embed a text

Jak to udělat správně:
http://flash.jakpsatweb.cz/index.php?page=public (poslední odstavec)
Leo
Profil
No ja nejsem urazlivy, ale vy taky nejste moc vychovany, ze? :-) Jak to udelat spravne je na alistapart (kde mimochodem zadne classid neni), a ve Firefoxu to zobrazi i alernativni text. Leos Ondra
izsak
Profil
Ten text by si mal uviesť do <embed>:

<embed src="draw.swf" menu=false quality=best bgcolor=#ffffff width="500" height="500" name="draw" align="" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
<br />Vykres produktu - pokud se nezobrazil, nemate pravdepodobne povoleno prehravani animaci Macromedia Flash
</embed>

Skúšal som rôznu kombináciu <object>, <embed> a ich atribútov a v zásade sa dá povedať "W3C rulez", alebo ak sú správne použité atribúty pre <object> a <embed>, tak to funguje v ešte viacej prehliadačoch, ako tým kódom, ktorý generuje Flash pri exporte a niektré atribúty vyplní nesprávne/navyše.

Pozri si kód na http://www.izsak.net/docs/test-case/html/object.html
Prvý vložený Flash je vložený podľa štandardu W3C a funguje bezproblémovo (a je o 1/5 menší ako "zastaralý" spôsob).
Yuhů
Profil
Leo, můžeš prosím v krátkosti shrnout podstatu řešení z alistapart, které odkazuješ?

myslím
http://www.alistapart.com/articles/flashsatay/

upřímně řečeno, nechce se mi to celé číst :-)
A mohl bys prosím uvést URL konkrétní stránky, kde uvedený postup používáš? (Rád bych to vyzkoušel v prohlížečích.)

Díky!
izsak
Profil
Yuhů
Ide o správne použitie týchto atribútov:
<object width="200" height="100"
title="tag OBJECT test (Flash Movie)"
type="application/x-shockwave-flash"
data="object_test.swf">
<param name="movie" value="object_test.swf" />
tag OBJECT is not supported for Flash Movie (application/x-shockwave-flash; clsid:D27CDB6E-AE6D-11cf-96B8-444553540000)
</object>

Testovaciu verziu mám na stránke: http://www.izsak.net/docs/test-case/html/object.html
Leo
Profil
No v kostce cili v orechove skorapce na alistapart popisuje autor (Drew McLellan) svou cestu od nevalidniho kodu, ktery pro vlozeni swf souboru (tedy flashe - coz muze a nemusi byt ANIMACE, nekdy se flash muze hodit i pro statickou grafiku, pokud ji chcete mit vektorovou).

1, Vyloucil pouziti elementu embed, protoze ten neni v (X)HTML standardni, cimz jako jediny element pro vlozeni externiho binarniho souboru zustal object

2, Object podle specifikace (X)HTML nema povinne atributy, ale ma radu povolenych, napr. classid, codebase, data, type, codetype... Navic podle specifikace umoznuje do sebe vkladat alternativni obsah, ktery by mel prohlizec zobrazit pokud neumi zobrazit typ souboru specifikovany v samotnym tagu object / v nasem pripade swf (flash)

3, Pokud se z puvodniho kodu generovaneho Macromedia Flash vyhodi embed, tak to prestane fungovat v jinym prohlizecich, nez je IE

4, Ukazalo se, ze na vine je konkretni pouzivany classid atribut objectu, ktery urcuje, ze se ma pro vlozeni flashe pouzit IE-only ActiveX

5, Misto tohoto classid se pro urceni typu externiho objectu pouzije - necekane - atribut type:

type="application/x-shockwave-flash"

6, V dalsim kroku vyhodil codebase (co tenhle atribut dela a proc ho vyhodil pise v clanku)

7, Tohle porad nebeha v Netscape a Mozille, ale nahodou prisel na to, ze staci pridat atrbut data:

data="movie.swf"

8, Pak to krasne beha vsude, s jedinou vadou na krase - pokud je flash skutecne animace pak ho IE nestreamuje - cesky receno nebezi soubezne s jeho stahovanim, ale ceka az se cele stahne, a pak ho pusti. Pokud tohle nevadi, je konecne reseni tohle:

<object
type="application/x-shockwave-flash" data="movie.swf"
width="400" height="300">
<param name="movie" value="movie.swf">
<img src="noflash.gif" width="200" height="100" alt="">
</object>

Obrazek (img) se zobrazi jen tehdy, kdyz prohlizec nedokaze zpracovat application/x-shockwave-flash, jinak se nikde neprojevi.

9, Reseni problemu se streamovanim tam je taky - vyzaduje zasah do samotneho flashe.

10, Jediny zbyvajici problem je v tom, ze IE bez codebase neinformuje uzivatele, ze ma starou verzi prehravace - poznamka k tomu je na konci clanku.

K tomu vsemu jen jednu poznamku - pokud nastavite ve firewallu (napriklad Norton od Symantecu), ze ma vyrusit ActiveX, chape to bohuzel tak, ze ma z (X)HTML kodu vyhodit cely element OBJECT, a s nim bohuzel i IMG jako alternativu.

Leos Ondra
Leo
Profil
"A mohl bys prosím uvést URL konkrétní stránky, kde uvedený postup používáš? (Rád bych to vyzkoušel v prohlížečích.)"

Zadne ostre stranky, kde bych to pouzival nemam, pouzival jsem driv dokonce JavaScript na zjisteni, jestli Flash pobezi nebo ne :-) Ted jsem narychlo dal flashsatay metodu (bez reseni streamovani a bodu 10) na adresu:

http://www.webby.cz/flashsatay/

Leos Ondra
Miroslav Charvát
Profil
Uz je to tu vyse zminene, ale pro zopakovani - napriklad

<OBJECT width="100%" height="100%" data="index.swf" type="application/x-shockwave-flash">
<PARAM name="movie" value="index.swf">
<br />Náhradní text
</OBJECT>

funguje uz perfektne - alespon v teto narychlo odzkousene verzi. Tedy co do nezobrazovani nahradniho textu v Gecku. Zakopany pes byl prave ve spravnem zapisu atributu. Diky za vsechny prispevky.

Problem s odstranovani OBJECT v ve firewall lze urcite vyresit pomoci vstupni stranky, ktera bude obsahovat jen flashove presmerovani a pod nim odkaz na stranky s informaci o, pro flash nevhodnem, nastaveni firewall. Pritom do OBJECT jde vlozit nahradni text informujici, ze se musi zapnout Flash a do nej na konec pridat dost odradkovani, aby se vyse zminena firewall-kotva osunula hooodne dolu, mimo pruzor.

Hm, problem s detekci verze prehravace je pak resitelny javascriptem anebo pomoci samotneho flashe, jak popisuje P.Kerman v knize Action Sipt ve Flashi. To se mi libi z hlediska omezeni moznych problemu vic, nez dalsi starosti s JavaScriptem.

Takze jeste jednou diky za pomoc.
Leo
Profil
"Problem s odstranovani OBJECT v ve firewall lze urcite vyresit pomoci vstupni stranky, ktera bude obsahovat jen flashove presmerovani a pod nim odkaz na stranky s informaci o, pro flash nevhodnem, nastaveni firewall. Pritom do OBJECT jde vlozit nahradni text informujici, ze se musi zapnout Flash a do nej na konec pridat dost odradkovani, aby se vyse zminena firewall-kotva osunula hooodne dolu, mimo pruzor."

Prvni pulku asi chapu ale nesouhlasim, druhou nechapu - pokud do object vlozite cokoliv, firewall to ze stranek vyrizne i s objectem. Leo
Miroslav Charvát
Profil
Myslel jsem to takto:

<OBJECT width="100%" height="100%" data="index.swf" type="application/x-shockwave-flash">
<PARAM name="movie" value="index.swf">
<br />Náhradní text o tom, ze je nutno povolit Flash atd.
<br />
<br />
<br />
...
<br />... atd. hodnekrat pro odsunuti nasledujici obsahu pod okraj pruzoru
</OBJECT>

<p>
Pokud stranka obsahuje pouze tento text, Vas firewall je nastaven na vyruseni AktiveX ... <a href="link na info co s tim">Co s tim?</a>
<br />Pokud je nad timto textem uvedena jina informace, Vas firewall AktiveX neblokuje.
</p>

index.swf je zde jen presmerovac na nove URL


Tak a ted:

1. kdyz Flash zafunguje, presmeruje mne hned na spravny cil a nemam zadny problem
2. kdyz Flash nezafunguje, zobrazi se nahradni text v OBJECT a hooodne nizko pod nim az info o firewall, ke kteremu pravdepodobne vetsina uzivatelu ani nedoskroluje
3. kdyz firewall odrizne OBJECT, zbyde na strance pouze text o firewall

Mozna by text o firewall sel i nejak skryt v pripade 2.
Miroslav Charvát
Profil
Jeste pro uplnost :o)

<br />
<br />
...
<br />... atd. hodnekrat pro odsunuti nasledujici obsahu pod okraj pruzoru
<br />&nbsp;
</OBJECT>

soucasti index.swf bz mel byt i tester verze prehravace s podminenym smerovanim na cil nebo info stranku s pokyny pro aktualizaci Flash Playeru
Leo
Profil
Videl bych to spis na reseni podobne nahrade textu obrazkem v CSS - napriklad flash pres CSS position umistit nad obrazek, ktery bude videt kdyz se nestahne flash. Nebo neco podobnyho, Leo
Miroslav Charvát
Profil
Myslite dat obrazek "NastaveniFirewall" do pozadi s tim, ze kdyz firewall odstrihne OBJECT tak bude pozadi videt, kdyz jej neodstrihne a nespusti se Flash, tak pozadi prekryje zas jiny obrazek "NejdeFlash" umisteny na misto nahradniho textu?

Aho to by asi slo, jen zas nesmi dojit ke kombinaci vypnute CSS+alergicky firewall. Protoze pod obrazek "NejdeFlash" jde pripojit i textova informace pro pripad vypnuti obrazku.
Leo
Profil
Navic si nekdo muze vypnout i obrazky - ale pak jaksi pocita s tim, ze je neuvidi. Cele se to da jeste okorenit JavaScriptem (ten obejde nastaveni firewallu tak, ze object vytvori dynamicky), ale i ten muze byt vypnuty. Hodne to vsechno zalezi na tom, co v tom flashi mate a jak moc je pro stranky kriticky... Leo
Miroslav Charvát
Profil
Jasne. Flash je kriticky, mam v nem udelanou aplikaci obsahujici mj. i on-line katalog, takze na nej uzivatele proste dostat musim :o)

Ale myslim, ze kdyz pujdu tou cestou textu odsunuteho dolu, tak se dosahnu sice hloupe, ale asi dost spolehlive reseni ... nechci moc michat technologie. Jeste si pohraju s tim rozpoznavanim verze Flashe primo ve Flashi a promyslim vsechny mozne varianty. Ta informace o firewall pro mne byla uplna novinka.
Toto téma je uzamčeno. Odpověď nelze zaslat.