Link para download ou redirecionamento na mesma página Flash/Flex
No trabalho tivemos algumas dificuldes de abrir um humilde link na mesma página apartir de um SWF!
o navigateToURL(URLRequest, String=null); por algum motivo não abria a página na mesma janela (sim usei o _self).
Não estou dizendo que fiz de tudo dentro das boas práticas, usando as coisas certas, mas lhe digo que o simples navigateToURL() com selt, parent, top, hospedado e não hospedado, interno ou em rede, allowScriptAccess:always ou sameDomain ele não queria ir, deve ser alguma config, então ajeitamos de 2 maneiras:
1ª – 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 kkk.
<script type=”text/javascript”>
function swfURL(param)
{
window.open(param, “_self”);
}
</script>
2ª – Digamos que é a mesma solução da primeira, porem faremos dentro do AS:
//Abre a URL passada na mesma janela da aplicação
private function open():void
{
var url:String = "javascript:void(window.open('http://www.chrisb.com.br/blog/o-pog-nosso-de-cada-dia-18/'))";
void(navigateToURL( new URLRequest( url ), "_self"));
}
Na linha 4 desse código acima, a palavra javascript fala para o SWF embedado procurar funções do javascript na página HTML, o void é justamente para o window.open não retornar nada, somente executar, pode acontecer de você disparar essa função para abrir a URL e ele abrir uma página em branco.
Na linha 5 esse void() é só teste mesmo hehe, ele não influência em nada, até por que o comando navigateToURL() é void, ele executa e não retorna nada. Pode remover ele se quiser rs
Uma variação do POG! Boa!