Autor | Zpráva | ||
---|---|---|---|
Gappa Profil |
#1 · Zasláno: 22. 7. 2010, 08:47:59
Zdravím/ahoj,
rád bych požádal o pomoc při řešení zajímavého problému, který se vyskytuje ve všech mnou testovaných verzí IE (6/7/8) a tedy bude souviset asi s Flash Pluginem jako takovým/vytvořeným swf. Popis problému: - mám flash, který přehrává video (mp4/flv), prakticky to je jenom plocha flashe, bez ovládacích prvků (ty se později dodělají pomocí html/css a celé se to ovládá přes js) - flash normálně funguje, pokud při načtení stránky nemá žádný z jeho rodičů nastaveno display: none - pokud se flash načte jako skrytý a pak se zobrazí, není vidět žádný obraz a hraje pouze zvuk (testováno na více videích) Co jsem zkoušel/poznatky: - vložit flash jak pomocí embedu, tak DGX způsobu - nemá vliv - jiný flash přehrávač tento problém nemá - pokud skrytému parent elementu vypnu display: none přes IE Developer Toolbar, tak obraz/video je vidět bez problémů - přehrávač je v podstatě jen .as soubor, ten si vše potřebné vytvoří Problém tedy bude někde nejspíše ve zdrojáku toho flashe v kombinaci s activex pluginem pro IE. Možná bude stačit něco nastavit při publikaci flashe, ale flashař zrovna nejsem a tak s tím nemám téměř žádné zkušenosti. Rád bych dal odkaz přímo na ukázku, ale můžu dávkovat informace pouze po málu a rozhodování není na mně (je to pro jeden projekt). Další info, pokud bude pro vyřešení nutné, se snad bude dát poskytnout. Díky za pochopení a případné rady, ačkoliv házím případným řešitelům tak trochu klacky pod nohy. |
||
Časová prodleva: 7 dní
|
|||
Gappa Profil |
#2 · Zasláno: 29. 7. 2010, 11:06:13 · Upravil/a: Gappa
Podařilo se mi zjistit, kde je problém:
- ve chvíli inicializace přehrávače v okamžiku, kdy se videu nastavuje šířka a výška, jsou atributy stage.stageWidth a stage.stageHeight rovny nule. - videu se tedy nastaví nulové rozměry, tudíž není vidět a hraje jen zvuk - googlil jsem tedy spojení "stage.stageWidth 0" a to mi dalo nějaké výsledky (rozdílné), funkční pro můj případ byl až následující způsob inicializace. Nejdříve jen přidat event a nic neinicializovat: addEventListener(Event.ENTER_FRAME, onEnterFrame); Až na základě eventu něco provést: private function onEnterFrame(e:Event) { if (stage.stageWidth > 0 && stage.stageHeight > 0) { removeEventListener(Event.ENTER_FRAME, onEnterFrame); initializePlayer(); } } Veškerá inicializace tedy proběhne až ve chvíli, kdy jsou známy rozměry stage. Problém s nulovými rozměry stage nebude asi jen čistě problém IE, popisovali tam i FF/Chrome a ještě to prý bývá závislé na tom, jestli se flash stahuje, nebo jestli se jen vezme z cache. Snad toto někomu pomůže, mně to stálo pár nervů :) |
||
Časová prodleva: 14 let
|
0