Pablo Hobus 0 Denunciar post Postado Abril 20, 2010 Olá pessoal, to com uma dúvida em relação a um código lighbox para ser aberto pelo flash, pois, utilizei um carousel e gostaria que este abra o link em um lightbox, procurando pela internet encontrei este código em javascript: <script type="text/javascript"> function lightwindowDelegate(url,rel,title) { var objLink = document.createElement('a'); objLink.setAttribute('href',url); objLink.setAttribute('rel',rel); objLink.setAttribute('title',title); lightwindow.prototype.start(objLink); } </script> agora o código que vai no flash: javascript:lightwindowDelegate('photo_url[this._parent.tn_no], photo_rel[this._parent.tn_no], photo_title[this._parent.tn_no]') onde,photo_url[this._parent.tn_no], photo_rel[this._parent.tn_no], photo_title[this._parent.tn_no] são repassados pelo xml do carousel.. o resultado é um erro, sendo este "Objeto esperado".. alguem teria uma luz no final do túnel? eu acho que a função javascript no flash esta errado, talvez a maneira como digitei esteja errada, acho que não estão sendo passados os dados do xml da maneira que escrevi, porem, se eu tiro desta função e realizo uma função simples ele funciona.. não no lightbox e sim abre uma página nova com a foto.. desde já, agradeco a todos.. só para complementar: no xml esta assim: <photo thumbnail="01/flashmo_028_design.jpg" url="pg_obra/fotos_obra/01/grande/6.jpg" rel="clearbox[gallery=Fotos da Obra,, autoslideshow,, slideshowtime=5]" title="Residencial Neusa Luzia" /> a principal função é o "rel", pois, este é o que abre o lightbox Compartilhar este post Link para o post Compartilhar em outros sites
Raytwo 0 Denunciar post Postado Abril 20, 2010 tenta usar um shadowbox =D http://forum.imasters.com.br/index.php?/topic/382011-como-abrir-shadowbox-a-partir-de-um-swf/ Compartilhar este post Link para o post Compartilhar em outros sites
Pablo Hobus 0 Denunciar post Postado Abril 20, 2010 raytwo, obigado pela ajuda.. mais tp, eu não gostaria de trocar o lightbox que possou, pois existe no site outros links com o mesmo light, que em um link normal fica assim: <a href="pg_obra/fotos_obra/01/grande/3.jpg" rel="clearbox[gallery=Fotos da Obra,, autoslideshow,, slideshowtime=5]" title="Residencial Neusa Luzia"><img src="pg_obra/fotos_obra/01/3.jpg" border="0" /></a> por isso, toda aquela função em javascript, pra tentar realizar esta mesma função de um link normal Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Abril 20, 2010 de um trace nesse seu this._parent.tn_no que tenho quase certeza que teu erro ta ai E para usar variaveis dentro do getURL você faz assim: getURL("javascript:callLight("+variavel+")"); Caso contrario a variavel é passada como string e não o seu valor... no seu caso passaria para a função java isso: this._parent.tn_no... que não é correto. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Raytwo 0 Denunciar post Postado Abril 20, 2010 entendi... você ja usa no site a função lightbox so que em html e você qr fazer essa mesma função em flash... o que posso te ajudar é você usar a função do shadowbox e mudar o codigo CSS do fundo para branco =) nao sei se vai ter tanta diferença, mas é uma ideia Compartilhar este post Link para o post Compartilhar em outros sites
Pablo Hobus 0 Denunciar post Postado Abril 20, 2010 berseck, nao entendi direito pra que serve a função trace.. vou passar o código mais completo pra ve se ajuda: photo_thumbnail = new Array(); photo_url = new Array(); photo_rel = new Array(); photo_title = new Array(); filepath = "pg_obra/fotos_ilustrativas/"; // Load the photos XML var flashmo_xml = new XML(); flashmo_xml.ignoreWhite = true; flashmo_xml.onLoad = function() { var nodes:Array = this.firstChild.childNodes; for(var i=0;i<nodes.length;i++) { photo_thumbnail.push(nodes[i].attributes.thumbnail); photo_url.push(nodes[i].attributes.url); photo_rel.push(nodes[i].attributes.rel); photo_title.push(nodes[i].attributes.title); } } flashmo_xml.load(filepath+"imagens_ilustradas.xml"); este código esta em um action.. agora o que faz o link esta em outro action, mais no mesmo swf: x_middle = Stage.width/2; y_middle = Stage.height/2; tn_group.tn._visible = false; tn_group.setMask( tn_area ); tn_alpha_default = 75; tn_spacing = 6; p = 0; info = ""; for( var i = 0; i < photo_thumbnail.length; i++ ) { tn_group.tn.duplicateMovieClip("tn"+i, i); tn_group["tn"+i].tn_pic.loadMovie(filepath+photo_thumbnail[i]); tn_group["tn"+i].tn_pic2.loadMovie(filepath+photo_thumbnail[i]); tn_group["tn"+i]._x = i * (tn_group.tn._width + tn_spacing); tn_group["tn"+i]._y = tn._y; tn_group["tn"+i].tn_pic._alpha = tn_alpha_default; tn_group["tn"+i].tn_no = i; tn_group["tn"+i].tn_button.onRollOver = function() { this._parent.tn_pic._alpha = 100; _root.info = photo_name[this._parent.tn_no]; } tn_group["tn"+i].tn_button.onRollOut = function() { this._parent.tn_pic._alpha = tn_alpha_default; _root.info = ""; } tn_group["tn"+i].tn_button.onRelease = function(){ getURL("javascript:lightwindowDelegate(\"+photo_url+, +photo_rel+, +photo_title\")"); } } getURL("javascript:lightwindowDelegate(\"+photo_url+, +photo_rel+, +photo_title+\")"); esse função já escrevi reescrevi.. mais não funciona, e esse trace nunca usei esta função =/ completando a função que vem junto com o carousel de abrir uma página é esta "a correta": getURL( photo_url[this._parent.tn_no] ); Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Abril 20, 2010 Bom para começar trace eh o famoso PRINT ou ECHO do flash soh que em vez dele printar na tela ele printa no output do flash Para que ele serve? para mostrar erros e variaveis. trace("Hello World"); Isso vai mostrar no output do flash: Hello World var str:String = new String('Cachorro'); trace('str'); //Output Cachorro Então o trace serve para mostar os valores que você já tem. Imagine quão complicado não fica você ter que todas as vezes que der erro ficar perguntando... e as vezes é apenas uma virgula... então porque não começar a usar o trace e verificar o código na munheca??? fica melhor porque ai você ja vai desvendando todos os problemas antes de perguntar no forum... e ai quando perguntar já é mais especifico. Por isso que falei para você fazer um trace(this._parent.tn_no); Para ver se vem o valor desejado :) Se vem o valor desejado então faça o proximo passo que não é escapando as aspas!!!!!!!! Aqui ta seu erro: getURL("javascript:lightwindowDelegate("+photo_url+","+photo_rel+","+photo_title+")"); Escreve desse jeito que coloquei ai e veja se chama a função javascript. E para ter certeza que ta chamando a função coloque um alert nela. <script type="text/javascript"> function lightwindowDelegate(url,rel,title) { alert(url); alert(rel); alert(title); var objLink = document.createElement('a'); objLink.setAttribute('href',url); objLink.setAttribute('rel',rel); objLink.setAttribute('title',title); lightwindow.prototype.start(objLink); } </script> Se todos os valores aparecerem no alert corretamente provavelmente vai aparecer sua janelinha lightbox depois :) Enquanto n aparecer tudo mantenha os alerts para ver se as variaveis estão chegando corretamente. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Pablo Hobus 0 Denunciar post Postado Abril 20, 2010 beseck, assim que se ajuda, demonstrando como aprender a lidar com os erros, o meu forte nao é o flash e sim php.. e faço isto tbm para ver os erros na programaçao mais nem imaginava como faria isso em flash.. valeu mesmo pela dica.. continuando a funçao java nao foi chamada, deu erro > esperado ')' nao sei oq significa =( Compartilhar este post Link para o post Compartilhar em outros sites
Pablo Hobus 0 Denunciar post Postado Abril 20, 2010 galera já era.. acabei de descobri que esse lightbox suporta flash, porem nao suporta galeria.. nao rola assim mais valeu todo mundo ai obrigadao mesmo =/ abracoss pessoal Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Abril 20, 2010 Olha desanime nao porque eu sei que da pra você colocar a cada botao uma chamada... Basta que você tenha os links refletidos no seu HTML você pode fazer a sequencia no lightbox... caso contrario n da. Eu vi esse exemplo no proprio site do lightbox a um tempo atras. Continua procurando porque que da pra fazer oque você quer da... que eu sei e ja fiz um exemplo desses funcionar. abs Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Abril 20, 2010 Bom consegui fazer aqui um exemplo pra você Baixe o lightbox++ nesse site:http://www.flashxml.net/free/download/lightbox++v101.zip Depois você vai editar o HTML do seu flash Va no header e coloque isso sem tirar nem por: <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" /> <script src="js/prototype.js" type="text/javascript"></script> <script src="js/scriptaculous.js?load=effects" type="text/javascript"></script> <script src="js/lightbox++.js" type="text/javascript"></script> <script language="JavaScript" type="text/javascript"> function callGallery(url,caption) { var objLink = document.createElement('a'); objLink.setAttribute('href',url); objLink.setAttribute('rel','lightbox[flowers]'); objLink.setAttribute('title',caption); Lightbox.prototype.start(objLink); } Feito isso agora você vai criar uma div invisivel e vai colocar seus links lá Assim: <div style="display:none"> <a href="gallery/flowers1.jpg" rel="lightbox[flowers]">flower #1</a> <a href="gallery/flowers2.jpg" rel="lightbox[flowers]">flower #2</a> <a href="gallery/flowers3.jpg" rel="lightbox[flowers]">flower #3</a> <a href="gallery/flowers4.jpg" rel="lightbox[flowers]">flower #4</a> </div> Feito isso vai chamar essa função assim no flash em seu botão: getURL("javascript:callGallery('gallery/flowers1.jpg','flower #1');"); E pronto tudo vai funcionar :) Abraços PS: aceito depositos na minha conta :P Compartilhar este post Link para o post Compartilhar em outros sites