O SWFObject é um pequeno arquivo Javascript usado para a inserção de conteúdo Macromedia Flash na página. O script detecta o plug-in do Flash em todos os principais navegadores (do Mac e PC), e foi projetado para facilitar ao máximo a inserção de filmes em Flash. É “amigável” aos mecanismos de busca, mostra um conteúdo alternativo no caso de o filme não ser carregado, pode ser usado em documentos HTML e XHTML 1.0 válidos* e é compatível no futuro, então se espera que ele funcione por muitos anos. Esta página é uma tradução livre que fiz da original de Geoff Stearns, com a permissão do autor.

Funcionamento do script

[Os über nerds podem ver o javascript cru aqui.]

O uso do SWFObject é fácil. Simplesmente inclua o arquivo Javascript swfobject.js, então use uma pequena quantidade de script na sua página para inserir o filme Flash. Abaixo, segue um exemplo mostrando a quantidade mínima de código necessária para isso:

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

<div id="flashcontent">
Este texto será substituído pelo filme Flash.
</div>

<script type="text/javascript">
var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
so.write("flashcontent");
</script>

Aqui está uma análise do que o código faz:

<div id="flashcontent">[...]</div>

Prepara um elemento HTML que armazenará o seu filme Flash. O conteúdo colocado no elemento “recipiente” (conteúdo alternativo) será substituído pelo conteúdo em Flash, assim os usuários com o plug-in do Flash instalado jamais verão o conteúdo dentro deste elemento. Esse recurso tem o bônus adicional de permitir aos mecanismos de busca indexar o seu conteúdo alternativo.

var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699");

Cria um novo SWFObject passando os parâmetros obrigatórios:

  • swf: o caminho e o nome do seu arquivo swf.
  • id: o ID do seu objeto ou da tag “embed”. A tag embed também usará esse valor no seu atributo nome para os arquivos que utilizam o swliveconnect.
  • width: a largura (em pixels) do seu filme Flash.
  • height: a altura (em pixels) do seu filme Flash.
  • version: a versão necessária para rodar o seu conteúdo em Flash. Pode ser uma string no formato “maiorVersão.menorVersão.revisão”. Por exemplo: “6.0.65”. Ou você pode apenas exigir a maior versão, como por exemplo “6”.
  • background-color: o valor em hexa da cor de fundo do seu filme Flash.

Parâmetros opcionais:

  • useExpressInstall: se você deseja atualizar o plug-in dos usuários usando o recurso ExpressInstall, use “true” para esse valor.
  • quality: a qualidade com a qual você deseja que seu filme seja executado. O valor padrão é “high”.
  • xiRedirectUrl: se você deseja redirecionar os usuários que completarem uma atualização via ExpressInstall, especifique a URL aqui.
  • redirectUrl: se você deseja redirecionar os usuários que não têm a versão correta do plug-in, use esse parâmetro.
  • detectKey: o nome da variável de URL que o script do SWFObject procurará para contornar a detecção. O padrão é “detectflash”. Por exemplo: para contornar a detecção do Flash e simplesmente escrever o filme Flash na página, você pode adicionar ?detectflash=false na URL do seu documento que contém o filme Flash.
so.write("flashcontent");

Diz ao script do SWFObject para escrever o conteúdo em Flash na página (se a versão correta do plug-in estiver instalada no sistema do usuário), substituindo o conteúdo dentro do elemento HTML especificado.

Os detalhes

O SWFObject funciona silenciosamente no segundo plano do seu documento HTML. Ao desenvolver páginas que usam esse script, você começará criando o conteúdo alternativo (não-Flash). Faça que suas páginas funcionem sem os filmes em Flash, então os adicione com pequenos fragmentos Javascript que substituem seu conteúdo alternativo com os filmes desejados. Isso garante que o conteúdo alternativo será indexado pelos mecanismos de busca, e que os usuários sem o plug-in do Flash verão uma página HTML que funciona. Se você fornecerá instruções de upgrade ou não é uma decisão sua. Se o seu conteúdo alternativo é suficiente, pode não existir razão bastante para dizer às pessoas que elas estão perdendo o conteúdo em Flash.

O SWFObject funciona em todos os navegadores atuais, incluindo, em PC: IE5/5.5/6, Netscape 7/8, Firefox, Mozilla e Opera. No Mac: IE5.2, Safari, Firefox, Netscape 6/7, Mozilla e Opera a partir do 7.5. E é esperado que continue a funcionar no futuro.

O SWFObject detecta versões do Flash player, a partir da versão 3, nesses navegadores, e permitirá aos usuários interagir com seu conteúdo em Flash sem ter que “ativá-lo” primeiro.

O SWFObject detecta as versões menores e revisões do Flash player, basta informar um parâmetro com a string da versão desejada. Por exemplo, para exigir o Flash player v.6.0 r65 (ou 6,0,65,0):

var so = new SWFObject("movie.swf", "mymovie", "200", "100", "6.0.65", "#336699");

A detecção de plug-in embutida do SWFObject pode ser contornada. Se um novo navegador for lançado, ou se, por alguma razão, a detecção falhar no sistema do usuário, você pode fornecer um link que desabilita essa detecção e sempre escreve o conteúdo em Flash na página. Para usar o link de contorno, faça um link para a sua página que inclua uma variável de URL chamada “detectflash”, configurada para “false”. Aqui está um exemplo de como pode ser esse link:

<a href="mypage.html?detectflash=false" mce_href="mypage.html?detectflash=false">Link de contorno</a>

* Páginas enviadas como text/html, e não application/xhtml+xml.

Atenção: o SWFObject é o script anteriormente conhecido como FlashObject. O nome foi alterado devido à razões legais de marca registrada. Para maiores informações, veja este post.

Retweet this post

About michelmelo

Michel Melo é um programador que tem um amor para a criatividade e gosta de experimentar com várias técnicas de programação. Acompanhe suas descobertas diariamente no Twitter: @machelmelo