Curso AS3

Flash junto ao Lightbox e Shadowbox

O Lightbox é muito popular, todos devem conhecer, é o efeito modal para abrir fotos sobre o site usando Javascript, veja aqui o efeito.

Pois bem, quando eu precisei deste efeito no Flash e Flex, escrevi uma classe Actionscript e o trabalho todo foi feito usando apenas o Flash.

Após uma mensagem do amigo Diego Tavares no fórum aqui do site sobre o uso do Lightbox e Shadowbox junto o Flash, andei pensando nessa união de JS e Flash, como eu estou acostumado a trabalhar com sites feitos completamente em Flash eu nunca senti necessidade de usar o Lightbox, mas para sites feitos parcialmente em Flash, para obter o efeito modal não temos saída, é preciso recorrer ao JS.

Eu vou mostrar aqui apenas como usar o Shadowbox, pois o Lightbox tem muitos exemplos na internet, e diferente do Shadowbox, o Lightbox abre apenas imagens.


Baixe o Shadowbox e importe o CSS e os JS’s no HTML do site.

<link rel="stylesheet" type="text/css" href="src/css/shadowbox.css">
<script type="text/javascript" src="src/js/lib/yui-utilities.js"></script>
<script type="text/javascript" src="src/js/adapter/shadowbox-yui.js"></script>
<script type="text/javascript" src="src/js/shadowbox.js"></script>

Inclua também o script abaixo no HTML, é uma função para podermos chamar no Flash.

<script type="text/javascript"> 
function abrirSB(type, title, url) 
{ 
    Shadowbox.init({skipSetup: true}); 
    Shadowbox.open({type: type, title: title, content: url}); 
}; 
</script>

No Actionscript, no evento de click sobre a miniatura da foto coloque:

navigateToURL(new URLRequest("javascript:abrirSB('img', 'Título', 'imagem.jpg');"), "_self");

Veja um demo rodando.

Como você pode ver o Shadowbox suporta formatos, o de imagem é “img”, os outros formatos são: “swf”, “flv”, “qt” (QuickTime), “wmp” (Windows Media Player), “iframe”, ou “html”.

Para maiores detalhes consulte o site do Shadowbox.

Existem também o Lightbox++, uma versão melhorada do original Lightbox, se você precisa de soluções do tipo, vale conferir. É melhor que o Shadowbox e o Lightbox, pois apresenta menos bugs, e possui mais recursos.

41 Responses to “Flash junto ao Lightbox e Shadowbox”

  1. KakA Says:

    E em AS2 erick? Como ficaria?
    Abraço, e parabéns pelo blog ;)

  2. Erick Souza Says:

    Opa, bem lembrado Kaka, é só trocar pelo getURL:

    getURL("javascript:abrirSB('img', 'Título', 'imagem.jpg');", "_self");

  3. Diego Tavares Says:

    Lembrando que o que diferencia o Shadowbox do Lightbox, é que nele é possível utilizar no seu efeito não apenas imagens mas também videios, swf e urls. fica ai o toque.

  4. Pedro Says:

    aki deu certo, mas n tem o efeito de transparência :(

  5. Diego Reis Says:

    Erick você teria o link ou algum material do mesmo efeito usando o lightbox?? fica ae o pedido.

  6. bc Says:

    Segui todos os passos e… não funciona em ie… mas sim em firefox. pk?
    obrigado

  7. giosh Says:

    grazie! grazie! grazie! mi hai risolto un grosso problema!!!

  8. bc Says:

    como posso fazer para correr várias imagens (continuous) sem ter que abrir/fechar para ver seguinte/anterior?

  9. daniel9d Says:

    verdade o lance da transparência ! valeu, abraço

  10. Campestre Says:

    no meu também não funciona, tentei usar seu código de exibir swf mas ele não quer exibir o flash de jeito nenhum…

  11. André Oliveira Says:

    olá pessoal. estou a fazer um site pessoal todo em flash, e gostaria imenso de emplementar o shadowbox nele. o problema é que nao encontro nada mais na net do que este (muito bom) blog, mas através das instruções do erick, não funciona..será que alguém a quem o shadowbox no flash funcionou, poderia disponibilizar o .fla ?

    contactar: andreol_3@hotmail.com

    obrigado

  12. Dany Says:

    Ola Pessoal…
    Estou fazendo um site e nem tem uma animação em flash no topo da pag, ok !!! Ha tbm fotos que serão abertas em Lightbox V2.0 mas o efeito nao cobre a animação em flash e ja nao sei mais o que fazer !!!!! o fundo aparece bonitinho e tals mas ele nao fica po cima do flash.
    Nuss nao encontrei nada na web pra resolver. Alguem pode me ajudar ?

    Bjos a todos !!!

  13. Erick Souza Says:

    Galera, postei no blog agora pouco algo que deve ajudar quem estiver com problemas, qualquer coisa comentem lá. =)

  14. Erick Souza Says:

    A transparência na imagem eu fiz usando a classe de animação Tweener, não é do Shadowbox.

  15. Ismael G.T. Says:

    Gostaria de usar Shadowbox com a galeria no flash, sabe neh mais de uma imagem no mesmo link, qual seria o comando pra fazer isso em getURL no flash?

  16. Solomon Says:

    Olá,
    Uma vez que esta não é a minha língua nativa, estou usando um tradutor …
    Poderia, por favor, envie o fla. arquivo para este demo ou enviá-la para mim, porque sempre que eu experimentar por mim próprio que não funciona.

    getURL ( “javascript: abrirSB ( ‘img’, ‘Título’, ‘/ imagens / codbox.jpg’);”,” _self “);

    Não está funcionando para mim.

  17. Alexandre Says:

    Olá não estou conseguindo colocar o comando… em URL…

    on(release){
    getURL(”javascript:abrirSB(’html’, ‘Papel de Parede’, ‘papel.html’);”, “_self”);
    }

    Tem algo errado? ele chega de abrir o modulo mas a pagina nao aparece fica preta. :/

  18. Tiago Says:

    Boas.
    Tb andava a tentar meter o shadowbox a funcionar (visto que tem aplicações que o lightbox não tem), mas tal como aqui o amigo Alexandre tb não me aparecem os conteúdos. Ele carrega , mas fica tudo a preto.
    Alguma possível solução?

  19. Tiago Says:

    Boas de novo….desde há bocadinho :)
    Afinal o que estava errado era o tipo de documento…não reparei inicialmente e bastou alterar que já funciona.
    As voltas que dei para uma coisa tão simples lol.

    cumpz

  20. Tiago Says:

    Alexandre, comigo ’html’ também não funcionou, mas utilizando ’iframe’ funcionou perfeitamente.

    cumpz

  21. Alexandre Says:

    Ola tiago funcionou mesmo.. mas ele enche a tela, tipow nao faz o resize.. entede?

    fica ai a duvida..

    ABs

  22. Bruno Mikoski Says:

    Realmente, isso fica muito bacana, hoje em dia, para quem ja utiliza o wordpress, ja existe alguns plugins fazendo isso bem facilmente!

  23. Diego Says:

    Qual a estrutura de diretorias nesse seu exemplo porque ta fazendo o efeito aqui tween mas o shadowbox não ta funfando!

  24. Diego Says:

    qual a estrutura dos diretorias pode dizer Erick??

    faz o efeito do tween mas o shadowbox não funciona aqui

  25. Filipe Says:

    Tem como traduzir o Shadowbox pra português? tentei de tudo mas não tá dando certo.
    Obrigado

  26. Tiago Says:

    Filipe, basta abrir o shadowbox.js e alterar para pt.
    por ex:
    * @var {Object} text
    */
    text: {

    cancel: ‘Cancelar’,

    loading: ‘A carregar…’,

    close: ‘Fechar’,

    next: ‘Seguinte’,

    prev: ‘Anterior’,

  27. Roberto Tavares Says:

    Boa tarde, no arquivo:
    on (release) {
    getURL(”javascript:abrirSB(’flv’, ‘titulo aqui’, ‘arquivo.flv’);”, “_self”);
    }

    Abre beleza no shadowbox-2.0rc1 ai vem minha pergunta. Como eu faço pra setar um tamanho no vídeo? To usando sua função postada aqui, mudei só o type: para player: devido a versão.

    flw´s

  28. Daniel Gularte Says:

    Amigo eu uso aqui o shadowbox mas no IE7 as animações das janelas e fades ficam muitos lentas e no seu exemplo tudo está bem suave. O que pode estar acontecendo? Pode me ajudar?

  29. michael Says:

    N consigo consigo abrir nada com

    on(release){
    getURL(”javascript:abrirSB(’imgl’, ‘titulo’, ‘image.jpgl’);”, “_self”);
    }

    mas usando

    Funciona na perfeição…. preciso de ajuda desesperadamente :)

  30. michael Says:

    N consigo consigo abrir nada com

    on(release){
    getURL(”javascript:abrirSB(’imgl’, ‘titulo’, ‘image.jpgl’);”, “_self”);
    }

    mas usando (no html)

    a rel=”shadowbox;options={handleOversize:’none’}” href=”image.jpg” title=”titulo”

    Funciona na perfeição…. preciso de ajuda desesperadamente :)

  31. Rafael Says:

    Não estou conseguindo colocar no HTML, como seria no iframe???

    vlws

  32. Davi Says:

    Amigao estou fazendo aqui no meu trampo… o problema é… tudo funcionou… mas preciso carregar um swf… blz… ae usei o codigo:

    on (release) {
    getURL(”javascript:abrirSB(’swf’, ‘Título’, ‘grande3.swf’);”, “_self”);
    }

    Deu perfeito… so que… como faço pra nesse codigo definir o tamanho que quero que o swf abra? E como caso queira, fazer com que ele redimensione perfeitamente pq aqui ele aparece com uns 20% do tamanho que deveria.

    Desde ja agradeço muito!
    w3rworks@gmail.com

  33. Leandro Says:

    Muito obrigado pelo tutorial, consegui fazer funcionar perfeitamente.

    Observei o mesmo problema que a maioria aqui teve, ao rodar o shadow no flash, o flash acaba sumindo do fundo, então dá a impressão que não tem transparência.
    Eu comprovei que existe a transparência pois testei juntamente com detalhes fora da área do swf, e esses ficam transparente. E observei que o mesmo acontece no seu exemplo.

    Então pergunto: Existe alguma forma de fazer com que o flash fique transparente?

    Aguardo resposta, se possível também por email.
    letiu@terra.com.br

  34. Vinícius Freire Soares Says:

    Oi Leandro, vi seu post estava com a mesma dificuldade para setar um tamanho para o swf, aliás estava com muitos problemas em relação ao shodownbox dentro de um swf puxando outro swf. Emfim a maneira que eu consegui adaptar foi esta:

    HTML:

    var openShadowbox = function(content, height, width, player, title){
    Shadowbox.open({
    content: content,
    height: height,
    width: width,
    player: player,
    title: title
    });
    };

    OBS: Esta foi a forma q encontrei no http://www.mjijackson.com/shadowbox/doc/faq.html
    Não consegui utilizar a forma como o Eric fez aqui no blog acabei fussando e encontrei esta
    outra forma lá.

    FLASH:

    on (press) {
    getURL(”javascript:openShadowbox(’movie.swf’, ‘600′, ‘600′, ’swf’, ‘Title’);”);
    }

    OBS: Deve haver uma forma dele pegar o tamanho automaticamente do stage do flash, mas por enquanto não consegui fazer isso.

  35. Fabio Alexis Says:

    Olá Pessoal, estou com a mesma dificuldade exposta pelo Leandro. Sobre quando o Shadowbox é acionado o flash “desaparece” por baixo. Alguém conseguiu resolver essa dificuldade?

    Segue exemplo do que estou falando.
    http://www.idealeonline.com.br

    Obrigado

  36. Leandro Says:

    É Fábio, ainda não consegui solução para este problema, também estou esperando que alguém tenha solucionado.

    Caso achar alguma, avise.
    letiu@terra.com.br

  37. Leandro Says:

    Consegui fazer ficar com fundo transparente, mas sinceramente foi sem querer, e eu não sei como fazer nos meus outros sites. Até pq eu usei o lightbox neste site, talvez seja por isso, porém eu queria trocar para o shadowbox.

    http://www.bambua.com.br/index555.htm >>> index de teste

    Aguardando soluçao.
    []’s

  38. Marcio Says:

    Olá, quero que ao clicar em cima de um botão em flash o lightbox ou o lytebox ou o shadowbox chame o link de um site qualquer como exemplo…. aguardo respostas!

  39. thiano lima Says:

    ola erick td bom kra.. qria saber se isso e possivel fazer abrindo um swf?
    Se ja tem algo pronto deste tipo

  40. Erick Souza Says:

    Oi Thiano, tem sim, o tipo é swf, mas precisa adaptar a função para passar as dimensões.

  41. Maikel Lersch Says:

    Abaixo segue solução para não desaparecer os swf da página quando executado o Shadowbox

    Trocar a linha abaixo (1413) no arquivo shadowbox.js (versao 2.0):

    var hide = ['select', 'object', 'embed']; // tags to hide

    por:

    var hide = ['select']; // tags to hide

    e adicionar wmode=”transparent” nos parametros do flash:

    Testei no Firefox 2, IE7, Opera 9, Chrome e funcionou perfeitamente

Leave a Reply