Ativar controle activex automaticamente

Olá Pessoal, mais um script rápido e útil!

Imagine que você precise colocar em uma página, uma ou mais animações (banner, header, logo…) em flash e não quer que o usuário precise ativa-la tendo que clicar na área da animação que passa a conter o texto “Clique aqui para ativar e usar este controle”… isso mesmo o cara tem que clicar no local onde está a animação para que ele possa ativa-la, mais diretamente… o usuário tem que permitir que a animação inicie no browser dele!

Bem, parece até uma medida de segurança, legal a iniciativa, mas de toda forma isso é muito desagradável e para resolver ao menos esse problema fiz um script em JavaScript que inicia automáticamente a animação sem precisar que o pobre usuário (que muitas vezes nem sabe o que é aquilo) precise sair clicando o site todo para saber o que tem nele.

Segue o arquivo index.html que conterá a animação:

<html>
<head>
<title>autoFlash</title>
<script src=”autoflash.js” type=”text/javascript”></script>
</head>
<body>
<div id=”DivFlash”></div>
</body>
</html>

A linha <div id=”DivFlash”></div>  irá receber a animação assim que a página for carregada, para isso usaremo no JavaScript o método  window.onload que permite informar quais eventos ou funções serão iniciadas após o carregamento total da página.

Vamos ao JavaScript – salve-o como autoflash.js

function flashAct(idElem,nomeSWF,largSWF,altSWF) {
movie = ‘<object classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000’
movie += ‘ codebase=http://download.macromedia.com/pub/shockwave/cabs/’
movie += ‘flash/swflash.cab#version=5,0,2,0 width=”‘+largSWF+'”‘
movie += ‘ height=”‘+altSWF+'”>’
movie += ‘ <param name=”movie” value=”‘+nomeSWF+’.swf”>’
movie += ‘ <param name=quality value=”high”>’
movie += ‘ <param name=BGCOLOR value=#333333>’
movie += ‘ <param name=SCALE value=exactfit>’
movie += ‘ <embed src=”‘+nomeSWF+’.swf”‘
movie += ‘ quality=high’
movie += ‘ pluginspage=http://www.macromedia.com/shockwave/download/’
movie += ‘index.cgi?P1_Prod_Version=ShockwaveFlash type=application/x-shockwave-flash’
movie += ‘ width=”‘+largSWF+'”‘
movie += ‘ height=”‘+altSWF+'”‘
movie += ‘ bgcolor=#333333’
movie += ‘ scale= exactfit>’
movie += ‘ </embed>’
movie += ‘ </object>’
movie += ‘ </object>’
document.getElementById(idElem).innerHTML = movie;
}

window.onload = function(){
flashAct(‘DivFlash’,’future’,’590′,’140‘)
}

Como pode perceber a função flashAct recebe 4 paramentros sendo eles  id da div, nome do arquivo flash sem a extensão, largura e altura, até muito simples de entender.

Agora preste atenção no seguinte, percebe que a variavel movie está concatenada e recebe toda a tag embed necessária para inserir uma animação flash no  HTML, observe bem o código… existe um espaço no inicio das concatenações, isso ocorre pq deve haver espaço entre as tags inferiores de embed para que a animação seja inserida corretamente e funcione, agora você me diz:  Pq que não colocou no final da concatenção e eu lhe digo: Pq senão poucos iriam perceber o espaço. Há no entanto 2 linhas que não possuem o espaço no inicio da concatenação e isso é proposital, ou seja, nesse local realmente não pode ter espaço, trata-se de uma única linha que dividi em 2 por estética (boa visualização do código).

As linhas sem espaço são:

movie += ‘ codebase=http://download.macromedia.com/pub/shockwave/cabs/’
movie += ‘flash/swflash.cab#version=5,0,2,0 width=”‘+largSWF+'”‘

A segunda linha acima deve realmente conter o espaço.

movie += ‘ pluginspage=http://www.macromedia.com/shockwave/download/’
movie += ‘index.cgi?P1_Prod_Version=ShockwaveFlash type=application/x-shockwave-flash’

A segunda linha acima deve realmente conter o espaço.

Bem, acho que isso ficou claro não é! Mas ainda falta explicar a linha abaixo:

document.getElementById(idElem).innerHTML = movie;

Essa linha contém a instrução que irá inserir dentro da tag div passada no parametro da função o embed ou a variável movie que contém as informações da animação.

No window.onload é feita chamada à função  flashAct(‘DivFlash’,’future’,’590′,’140‘) onde DivFlash é o ID da minha div que receberá o flash, future é o nome do arquivo swf (sem extensão), 590 é a largura que deverá conter a animação e 140 é a altura da animação.

Veja o exemplo funcionando e sem a frase “ativar o controle…”    =/

Download dos arquivos flash.

abraços,

Rafael Clares

Comments

  1. Responder

  2. By rafael

    Responder

  3. By clares

    Responder

  4. By Junior

    Responder

  5. By Flavia

    Responder

  6. Responder

  7. By Jota

    Responder

    • Responder

  8. By Jota

    Responder

  9. Responder

  10. By rodrigo

    Responder

    • Responder

  11. By jose martins

    Responder

  12. Responder

    • Responder

  13. By matilde

    Responder

  14. By matilde

    Responder

    • Responder

  15. By akimier

    Responder

  16. Responder

Perguntas duplicadas ou cujo a resposta esteja nos comentários serão ignoradas.
Comentários com códigos serão ignorados(para isso, use o pastebin.com e informe aqui o link).
Faça sua pergunta e "aguarde" ser aprovada para aparecer no blog.
Aguarde sua resposta, ela não é em tempo real, tenha paciência!

Deixe seu comentário