<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>bittersweet dev &#187; Flash</title>
	<atom:link href="http://blog.hboaventura.com/tag/flash/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.hboaventura.com</link>
	<description>'cause that's the dev life</description>
	<lastBuildDate>Wed, 12 May 2010 02:29:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Usando o SWFObject para adicionar Flash ao seu projeto</title>
		<link>http://blog.hboaventura.com/usando-o-swfobject-para-adicionar-flash-ao-seu-projeto/</link>
		<comments>http://blog.hboaventura.com/usando-o-swfobject-para-adicionar-flash-ao-seu-projeto/#comments</comments>
		<pubDate>Wed, 27 May 2009 11:14:37 +0000</pubDate>
		<dc:creator>kidh0</dc:creator>
				<category><![CDATA[Sem categoria]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.hboaventura.com/?p=107</guid>
		<description><![CDATA[Todo o desenvolvedor web que se preste deve gerar um HTML/XHTML válido para suas páginas. Isso não é mais uma recomendação, é um dever nosso. Quando falamos de inserir um Flash, o negócio fica preto, o código gerado pelos famigerados programas da Adobe não são válidos, criando tags que não existem (&#60;embed&#62;?) e um fonte [...]

<br/><br/>
<strong>Sem Posts Relacionados.</strong>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-118" title="swfobject_logo" src="http://blog.hboaventura.com/wp-content/uploads/2009/05/swfobject_logo-300x76.gif" alt="swfobject_logo" width="240" height="61" /></p>
<p>Todo o desenvolvedor web que se preste deve gerar um HTML/XHTML válido para suas páginas. Isso não é mais uma recomendação, é um dever nosso.</p>
<p>Quando falamos de inserir um Flash, o negócio fica preto, o código gerado pelos <span style="text-decoration: line-through;">famigerados</span> programas da Adobe não são válidos, criando tags que não existem (&lt;embed&gt;?) e um fonte gigantes com parâmetros que não é bom nem refletirmos muito sobre eles.</p>
<p>Outro problema que temos é de usabilidade, visto que esse Flash não tem um conteúdo alternativo, excluindo as pessoas que não tem Flash player. Claro, isso hoje em dia é raro de existir, mas não podemos esquecer que cresce cada vez mais (a passos de tartaruga, mas ainda assim caminha) o acesso a internet usando dispositivos móveis e alguns browsers usados nesses dispositivos não têm suporte. Dessa maneira, o  usuário simplesmente vai ter uma tela em branco, sem saber o que deveria ter de conteúdo ali. Também não podemos esquecer dos leitores de tela (JAWS e afins). Eles não &#8220;entendem&#8221; flash, excluindo, assim,  mais uma parcela de usuários.</p>
<p>Devemos lembrar ainda de um problema existente (pra falar a verdade, eu não sei se ainda existe, pois faz anos que não utilizo o IE) com o Internet Explorer que,  após determinada versão do Flash Player (8 se não estou enganado), tornou-se necessário clicar no flash para ativá-lo, ou seja, você precisava clicar num menu para ele funcionar como um menu.</p>
<p>Mas isso agora é passado! (parece aquelas propagandas de produtos duvidosos que aparecem na TV em horários alternativos) Existe uma maneira de inserir Flash gerando um HTML/XHTML válido, acessível e sem dores de cabeça e se chama SWFObject</p>
<h3>O que é o SWFObject?</h3>
<p>É um pequeno JavaScript  (menos de 4kb após ser comprimido) para adicionar conteúdos feitos em Flash na sua página de maneira fácil e indolor.</p>
<h3>Porque usar o SWFObject?</h3>
<p>Dentre as razões, podemos citar:<br />
* Sua página terá um HTML válido<br />
* Detecta automaticamente o Flash Player (existem outras soluções para isso, mas todas tem seus problemas)<br />
* Remove o incômodo de ter que clicar para ativar o Flash no Internet Explorer<br />
* Como é possível ter um conteúdo alternativo para o Flash, melhora a indexação pelos mecanismos de busca<br />
* Permite que se tenha uma<a href="http://www.tableless.com.br/graceful-degradation-e-tudo-sobre-acessibilidade" target="_blank"> Graceful Degradation</a></p>
<h3>Como usar</h3>
<p>Antes de tudo, devemos fazer o download do SWFObject do página do projeto no <a href="http://code.google.com/p/swfobject/downloads/list" target="_blank">Google Code</a>.<br />
A última versão estável disponível quando escrevi o artigo é a 2.1. Já existe a 2.2, mas é uma versão beta, deixem ela para depois, ok?</p>
<p>Descompacte o arquivo swfobject_2_1.zip e copie o swfobject.js e o expressInstall.swf para o diretório do seu projeto.</p>
<p>Usando o SWFObject, existem duas maneiras de adicionar o conteúdo flash na sua página.</p>
<h4>Maneira Estática</h4>
<p>Adiciona o Flash e o conteúdo alternativo usando marcação válida e usa o JavaScript para resolver que a marcação não pode resolver sozinha.  vantagem<br />
<strong>Tem como vantagem: </strong></p>
<ul>
<li>Usa marcação standard</li>
<li>Não usa javascript para adicionar o conteúdo a página, apenas para corrigir problemas pontuais, ou seja, o Flash vai ser acessível a um número maior de usuários (os que não tem suporte a JavaScript, leitores RSS, etc)</li>
</ul>
<p><strong>1º Passo </strong><br />
Seu Flash deve ser adicionado da seguinte maneira no &lt;body&gt; da sua página:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">object</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;meuId&quot;</span> <span style="color: #000066;">classid</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot;</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;300&quot;</span> <span style="color: #000066;">height</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;120&quot;</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">param</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;movie&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;test.swf&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
    <span style="color: #808080; font-style: italic;">&lt;!--[if !IE]&gt;--&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">object</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;application/x-shockwave-flash&quot;</span> <span style="color: #000066;">data</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;test.swf&quot;</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;300&quot;</span> <span style="color: #000066;">height</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;120&quot;</span>&gt;</span>
    <span style="color: #808080; font-style: italic;">&lt;!--&lt;![endif]--&gt;</span>
       <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
            <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>Conteudo Alternativo<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
           <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.adobe.com/go/getflashplayer&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Faça o download do Flash Player&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
    <span style="color: #808080; font-style: italic;">&lt;!--[if !IE]&gt;--&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">object</span>&gt;</span>
    <span style="color: #808080; font-style: italic;">&lt;!--&lt;![endif]--&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">object</span>&gt;</span></pre></div></div>

<p>Você pode adicionar parâmetros adicionais, mas é necessário colocar o &lt;param&gt; em ambas as declarações do &lt;object&gt; para o correto funcionamento</p>
<p><strong>2º Passo </strong><br />
Adicione a chamada para o SWFObject no &lt;head&gt;:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;swfobject.js&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span></pre></div></div>

<p><strong>3º Passo </strong><br />
Registre seu Flash no SWFObject e mostrar o que ele deve fazer com ele:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;</span>
     swfobject.registerObject(&quot;meuFlash&quot;, &quot;9.0.0&quot;, &quot;expressInstall.swf&quot;);
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span></pre></div></div>

<p>Onde o primeiro argumento é o ID do seu Flash, o segundo é a versão mínima do Flash Player que o Flash necessita e o terceiro parâmetro (opcional) é o link para a instalação expressa do Flash Player (vem junto no pacote do SWFObject)</p>
<p><a href="http://blog.hboaventura.com/wp-content/uploads/2009/05/swfobject_static.html" target="_blank">Veja um exemplo</a></p>
<h4>Maneira Dinâmica</h4>
<p>É baseada no conteúdo alternativo e usa o JavaScript para substituir este conteúdo pelo o do Flash caso haja o Flash Player e suporte JavaScript minimo necessário.<br />
<strong>Tem como vantagem: </strong></p>
<ul>
<li>Evita ter que clicar no Flah para ativá-lo no Internet Explorer 6/7 e Opera 9</li>
<li>Se integra melhor com aplicações que usam script</li>
</ul>
<p><strong>1º Passo </strong><br />
Crie um conteúdo alternativo usando uma marcação válida no &lt;body&gt; da sua página:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;meuConteudo&quot;</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>Conteudo alternativo<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.adobe.com/go/getflashplayer&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Faça o download do Flash player&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></div></div>

<p>É necessário adicionar um ID ao elemento, pois é através dele que o SWFObject irá fazer a substituição do conteúdo.</p>
<p><strong>2º Passo </strong><br />
Adicione a chamada para o SWFObject no &lt;head&gt;:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;swfobject.js&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span></pre></div></div>

<p><strong>3º Passo </strong><br />
Adicione o SWF usando JavaScript:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;</span>
    swfobject.embedSWF(&quot;test.swf&quot;, &quot;meuConteudo&quot;, &quot;300&quot;, &quot;120&quot;, &quot;9.0.0&quot;, &quot;expressInstall.swf&quot;);
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span></pre></div></div>

<p>O método embedSWF tem 5 parâmetros obrigatórios (urlSWF,id,width,height,versionSWF) e 4 opcionais (urlInstallSWF,flashvars,params,attributes). Para este exemplo, vou usar só os obrigatórios, mais detalhes sobre os parâmetros acesse <a href="http://code.google.com/p/swfobject/wiki/documentation" target="_blank">http://code.google.com/p/swfobject/wiki/documentation</a></p>
<p>Isso faz com que o SWFObject substitua o conteúdo do elemento ID, com o conteúdo do urlSWF</p>
<p><a href="http://blog.hboaventura.com/wp-content/uploads/2009/05/swfobject_dynamic.html" target="_blank">Veja um exemplo</a></p>
<p>Alguns links interessantes sobre o assunto:</p>
<ul>
<li><a href="http://code.google.com/p/swfobject/downloads/list" target="_blank">Página do projeto SWFObject</a></li>
<li><a href="http://www.alistapart.com/articles/flashembedcagematch/" target="_blank">A List Apart &#8211; Flash Embedding Cage Match</a></li>
</ul>
<p>E era isso, dúvidas? Críticas? Sugestões? Entre em contato!</p>


<br/><br/><p><strong>Sem Posts Relacionados.</strong></p>]]></content:encoded>
			<wfw:commentRss>http://blog.hboaventura.com/usando-o-swfobject-para-adicionar-flash-ao-seu-projeto/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
