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.

HTML:
  1. <link rel="stylesheet" type="text/css" href="src/css/shadowbox.css">
  2. <script type="text/javascript" src="src/js/lib/yui-utilities.js"></script>
  3. <script type="text/javascript" src="src/js/adapter/shadowbox-yui.js"></script>
  4. <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.

JavaScript:
  1. <script type="text/javascript">
  2. function abrirSB(type, title, url)
  3. {
  4.     Shadowbox.init({skipSetup: true});
  5.     Shadowbox.open({type: type, title: title, content: url});
  6. };
  7. </script>

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

Actionscript:
  1. 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.

32 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

Leave a Reply