25th nov 2009
O POG nosso de cada dia #18
Ah, as integrações enfre flash e javascript: elas sempre podem consumir tempo.
Até que as últimas que temos feito aqui na empresa têm sido tranquilas – graças inclusive ao Ronaldo (visitem o blog dele: http://www.hardinspire.com/blog/). Mas, sempre no final da implementação vem o cliente com alguma coisa diferente, que ninguém havia pensado…
O cenário
Um flash é alimentado por um xml, e a partir desses dados gera uma série de links.
O problema
Ao clicar, o flash abre esse link em uma nova página. Mas seria necessário abrir na mesma página.
A solução
Procuramos, procuramos, e nada de encontrar uma forma de fazer o swf abrir um link na mesma página – parece que por ser um swf embedade no html, não é possível fazer isso. A única forma de fazer foi a seguinte: criar uma função javascript que recebe a url como parâmetro (no caso, chamada swfURL) e chama um window.open com target para a mesma janela.
<script type=”text/javascript”>
function swfURLparam) {
window.open(param, “_self”);
}
</script>
O flash, na action script, chama essa função passando a url como parâmetro.
Não sei o quanto isso é um POG efetivamente, mas foi feito nos 45 do segundo tempo, como último recurso, e funcionou belezinha!

Flash… xml… calafrios! Ainda tem javascript no meio.
ahuahuhuahuahua
Há muito tempo atrás fazia alguns sites básicos, e normalmente o topo era em flash,
junto com o menu e advinha se abria os links em outra página?
Sim! Abriam… heheheh
essa do window.open(param, “_self”); eu nunca tinha visto huehehe
Mas um getURL(LINK_RECEBIDO_DO_XML, ‘_self’); não resolvia?
@Ricardo não sei… não manjo nada de AS, só pensei em como resolver por js! hehe
@Hard mas foi uma boa saída, hein?!?!
Aparentemente é um POG bem feito
[...] This post was mentioned on Twitter by Chris Benseler, FlashAbility. FlashAbility said: RT o POG nosso de cada dia: http://www.chrisb.com.br/blog/o-pog-nosso-de-cada-dia-18/ #flash #javascript: o POG nos… http://bit.ly/8rsX6g [...]
Não sei mas tenho a impressão que fazendo com o código abaixo iria funcionar:
var request:URLRequest = new URLRequest(url);
navigateToURL(request, ‘_self’);
Abraços!
@zap.br – acredite, só faltou eu usar o getURL(), tinha pelo menos em 2006 alguns sites em flash publicados e
eles abriam na mesma página, mas por forças maiores ele não abria!
=)
[...] – ExternalInterface -> Chamando um javascript no HTML em que o SWF esta. (Chris postou no blog dele, olhem la também) caiu no post de POGs [...]