Bom, existe a possibilidade de disparar um comando javascript de dentro de um Flash. Isso a maioria já sabe, quem não sabe ficou sabendo agora!
No AS2.0 era feito atravez do cmd
getURL, porém no AS3.0 não! Nele usamos o
ExternalInterface.call().
Não vou entrar em detalhes do porque houve mudança, até pq eu to aprendendo AS agora.
Bom, mãos a obra:
Para isso é necessário primeiro importar o Externalinterface no seu codigo AS:
Código actionscript
import flash.external.ExternalInterface;
Após importado (normalmente no inicio do código), é só usar:
Código actionscript
ExternalInterface.call("alert('foo')");
Tudo pronto, maravilha! Rápido, prático e indolor! Certo!?
ERRADO!
Roda isso no IE pra ver o que acontece!
(aaaaah ie sempre ele, e esse erro dá até no tão bem falado prototipo de browser decente
IE8)
Rodei e fucei os docs da Adobe, eles tem um exemplo que misteriozamente funciona no IE mas não ensinam a corrigir.
Enfim, fui fuçando até encontrar uma quase gambi.
O erro acontece pq o IE se refere ao flash via seu
Object ID, não faço ideia de que merda seja essa nem o porque incluir o flash em nossa pagina não gera isso. Mas achei a solução!
Ao invez de usarmos <embed> <object> e aquele monte de coisa. É só usarmos o
SWFObject!
Por ser um script bem feio, ele indexa esse ID e o IE passa a reconhecer os comandos JS dentro do AS.
É isso ae.
Olha ai as paginas do SWFObject:
http://blog.deconcept.com/swfobject/
Em breve um tutorialzinho desse script excelente!
Comentários:
Micox disse:
mas é bom saber. Eu ando desatualizado de flash. Ainda to na época do flash mx.
Ver o restante dos comentários no fórum (e aproveitar pra comentar também !).