May 05, 2006

Driblando a patente da Eolas com uso do FlashObject

Post por às em blog

Artigo escrito pelo Pedro Son (www.drope.org)

Driblando a patente da Eolas com uso do FlashObject

Em Dezembro de 2005, a Microsoft lançou uma atualização do Internet Explorer que muda bastante o comportamento de conteúdos rich-media embedados no html. O maior impacto desse mudança será sentido em conteúdos Flash, que agora precisam de um click do usuário para serem iniciados.

Há alguns anos atrás, uma empresa chamada Eolas reinvindicou uma patente sobre conteúdos dinâmicos em browsers. A briga se desenrolou durante muito tempo até que em 2005 a Microsoft perdeu a causa e ganhou uma multa de U$521 milhões. Foi quando resolveu mudar o comportamento do IE para que ele não mais infringisse a patente.

O problema

O IE não permite mais que nenhum conteúdo de um plugin externo seja carregado automaticamente. Isso inclui flash, shockwave, adobe reader, quicktime, real player, tudo. Dessa forma, o usuário deve clicar no conteúdo para que ele seja visualizado. E isso significa uma mudança drástica de navegação.

Por enquanto apenas o IE fez tal alteração, mas é muito provável que todos os browsers do mercado sejam obrigados a acatarem a patente. Não culpem a Microsoft, se for para culpar alguém, esse alguém é a tal da Eolas.

Solução para Flash

É muito provável que você esteja usando as tags <object><embed> para incluir conteúdos flash na sua página. Caso ainda esteja, é muito provável que muita gente esteja buzinando em seu ouvindo dizendo que o flash está “quebrado”.

A solução (workaround, gambiarra, enfim…) nesse caso é usar javascript para renderizar seu object/embed. Dessa forma, a patente não é infringida, o IE executa seu plugin normalmente, o conteúdo é entregue transparentemente e ficamos todos felizes.

Existe uma lib javascript que está sendo amplamente usada pela comunidade, que além de resolver essa questão do IE também tem detector de flash dos mais supimpas, usa uma DIV em que você pode descrever o conteúdo do flash (isso quer dizer que os googlebots da vida vão indexar seu conteúdo) e muito mais, como detecção de plugin, versão, etc.

Estou falando da Geoff Stearns’ FlashObject. Se analisarmos bem, ela é até mais fácil de usar do que as tags object/embed. Basta criar uma div que irá “segurar” o flash, e chamar 2 linhas de javascript:

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

<div id=”conteudoflash”>

Esse texto é substituído pelo flash, caso o usuário tenha

javascript e flash habilitados.

Você pode usar esse espaço para indexar o conteúdo

do seu flash em sites de busca.

</div>

<script type=”text/javascript”>

var fo = new FlashObject(“flash.swf”, “flash”, “10”, “10”, “7”, “#FFFFFF”);

fo.write(“conteudoflash”);

</script>

A primeira linha carrega o javascript.

O div (lembre-se, o id do div deve ser único) representa o local da página onde o conteúdo flash será carregado.

As linhas dentro da tag javascript instanciam o FlashObject, com os parametros do seu flash e depois dão um write para renderizar as tags object/embed no local correto.

Referências

Detalhes da mudança no comportamento ActiveX no site da Microsoft

Download do update

Página da adobe com outras dicas para contornar o problema

Histórico do causo