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.

64 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

  42. Grey Says:

    Olá amigo!
    Olha.. eu baixei os seus arquivos e fiz tudo exatamente como você disse, porém usando a dica com AS2… mas nada funcionou… usei então um:
    on (release) { getURL(”javascript:abrirSB(’img’, ‘titulo’, ‘imagem.jpg’);”); } e também não funcionou…
    Tem alguma mágica ai que eu não fiz?

    Poxa… o teu funciona tão certinho…

    Agradeço se você puder dar um help! :)

  43. patricia prado Says:

    bem ..
    Baixe o Shadowbox e importe o CSS e os JS’s no HTML do site.
    não entendi essa parte.

    =/

  44. Fabio Alexis Says:

    Olá Maikel, onde chama no código o “shadowbox2.js”?

  45. juh Says:

    Olá até mesmo com esse forum ainda sim não continuo entendo como funciona isso!
    eu tenho um modelo pronto de light ja pronto….e naum consigo fazer essa modificação.. gostaria de saber se o tutor desse forum poderia colocar um ja pronto para download…”no meu caso precisso de um assim tem uma imagen no htm e quando alguem clicar chama um swf”..fico muito feliz se conseguir alguh asim…

    e até

  46. Grey Says:

    Olá amigo!
    Então… enfim a shadowbox abre no flash com transparência e tudo… mas… por mais que o link para a imagem que quero abrir esteja correta, não abre… fica carregando, carregando, carregando…

    Já tentei: getURL(”javascript:abrirSB(’img’, ‘Título’, ‘imagem.jpg’);”, “_self”);
    e getURL(”javascript:abrirSB(’img’, ‘Título’, ‘http://www.meusite.com.br/images/imagem.jpg’);”, “_self”);

    Mas nada…

    E ai? Alguma dica?
    Thanks a lot!

  47. Eduardo Betioli Says:

    Valeu Erick, seu post e os comentários deixado aqui me ajudou muito. Especialmente o do Vinícius Freire Soares. Abraços.

    Segui o padrão que o Vinícius postou, eu precisava inserir uma página html, mas usando html nao deu.. apenas troquei o parâmetro HTML por IFRAME dentro do Flash, nada mais.

  48. Diego Says:

    Hello,
    I did download your example,
    precissava an urgent help …

    tested your example, ran straight, but I made a gallery of photos and the site did not work, all parameters used in the example Mension but not worked!

    put the script in my html are all correct, but the parameter used in flash, can not be sure because his example is the. fla.

    I would like to know how to work correctly?

    grateful since.

    hugs

  49. Figo Says:

    Olá pessoal, alguém conseguiu usar o lightbox++ pelo flash?

    pois fiz uma galeria de fotos pelo flash, usei o exemplo acima, mas não funcionou, hospedei tudo certinho mas não deu certo!

    q q eu fiz de errado?

    alguém sabe me dizer?

    valeuu….

  50. Eloisa Says:

    Olá Erick,
    Poderia me ajudar? Eu fiz o tuto, a o shadow é executado, só que imagem abre embaixo do shadow…
    Eu to chamando através do botão de um swf…..
    Poderia sugerir o que pode ser?
    Beijos e Obrigada!

  51. Uriel Says:

    Porque quando baixo o shadowbox nao vem junto o “lib/yui-utilities.js”?? Alguém sabe me explicar?

  52. Jota Personal Says:

    Coloquei tudo no servidor e nada… Veja o teste:

    http://www.fiorecomunicacao.com.br/teste_shadow.html

  53. Humberto Says:

    Opa, então como eu faria pra usar o lytebox + flash para abrir uma página HTML tipo index.htm, com barra de rolagem e tudo???

  54. lucas Says:

    Gostaria de uma ajuda , deu certo tudo, e agradeço pela oportunidade oferecida, para fazer flash + linghtbox funcionar.

    Meu problema é que não consigo ver o tamanho real da imagem, como faz para abrir a imagem com tamanho original que salvei para abrir ?

    atenciosamente
    Lucas

  55. Wladimir Says:

    Se possível uma ajuda:
    Para abrir UMA imagem funciona muito bem! e Como abrir uma GALERIA através do flash?

    Obrigado

    Wladimir

  56. Claudia Says:

    Olá,
    Fiz e o shadowbox abre direitinho no firefox e chrome, mas não no IE.

    Alguém conseguiu fazer funcionar no IE?? como??

    Valeuu
    Claudia

  57. Rude Says:

    Eric, usando uma imagem ele abre de boa! Mas não abre HTML.
    Alterei o AS do botão no flash:

    on (release) {
    getURL(”javascript:abrirSB(’html’, ‘TITULO’, ‘pagina.html’);”, “_self”);
    }

    E na página que estou requisitando usei a seguinte TAG no site do SB eles indicam.

    Mas mesmo assim não tá abrindo!! Vc pode dar uma ajuda?? Abraço!

  58. Diego Alex Says:

    Erick, testei aqui e ta tudo funcionando direitinho, mas como faço pra varias fotos, tipo ai quando preciona “p” e “n”, ele navegue entre elas.

    Values pelo post, muito bom.

  59. Dcastro Says:

    estou tendo o mesmo problema para abrir HTML

    a tela fica preta e nada abre, o que está errado ?? quero abrir um PHP

  60. luiz Says:

    Parabéns, não conhecia bem esta shadow box, porem gostei muito, e a interação com o flash fico muito boa, obrigado..

  61. Felipe Says:

    eu usei este AS aqui
    mais nao abriu ;/

    on(release){
    getURL(”javascript:abrirSB(’img’ ‘Titulo’ ‘imagem.jpg’);”, “_self”)
    }

  62. Antônio Carlos Says:

    Boa noite amigos,
    realmente não estou conseguindo inserir o shadowbox, no meu site em flash.
    acho que não estou colocando os arquivos certos ou as pastas certas no servidor.
    (Baixe o Shadowbox e importe o CSS e os JS’s no HTML do site.), baixo um zip, com vários arquivos, eu coloco todos no servidor, dentra da pasta que ja veio no zip ? ou como eu faço.

    desde ja agradeço.

  63. Antônio Carlos Says:

    eiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii!!!
    alguém por ai ??

  64. Tiago Warst Says:

    Oi, Antônio Carlos!
    Você tem que colocar as quatro primeiras linhas de código no arquivo que você quer usar o shadowbox, no entanto, lembre-se que você tem que colocar todos os arquivos descompactados do Zip na mesma pasta desse arquivo que você quer usar o ShadowBox! Hmmm…. Fixou difícil?
    Exemplo: Finja que você quer fazer uma galeria na página principal. Então você vai colocar aquelas quatro primeiras linhas de códigos lá em cima (aqui desta mesma página) dentro do arquivo de web (dentro do seu HTML). Depois coloque também os outros códigos listados na segunda caixa (também aqui). Aí dentro do seu arquivo flash você usa, como endereço para os links, aquele terceiro código desta página!

    Galera, estou tendo dificuldades com o Lightbox++ no Internet Explorer (sempre ele), está dando um erro meio bizonho no meu site: http://www.tiagorocha.com.br/trabalhos/xaropetattoo
    Alguém sabe como dar um jeito nisso?

Leave a Reply