Bom hoje vou ensinar como que se trabalha com a classe externalInterface() do flash
Trata-se de uma classe simples que comunica o flash com o javascript automaticamente ao mesmo tempo.
Então vamos lá
Meu arquivo flash se chama test.fla
O HTML dele foi feito da seguinte maneira:
<html xmlns=”http://www.w3.org/1999/xhtml” xml:lang=”en” lang=”en”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″ />
<title>test</title>
<script language=”javascript”>AC_FL_RunContent = 0;</script>
<script src=”AC_RunActiveContent.js” language=”javascript”></script>
<script>
function onFlashReady() {
sendToAS(“another test message”);
}
function callJS(value) {
onFlashReady();
return “Hi Flash.”;
}
function thisMovie(movieName) {
if (navigator.appName.indexOf(“Microsoft”) != -1) {
return window[movieName];
} else {
return document[movieName];
}
}
function sendToAS(value) {
thisMovie(“test”).callAS(value);
}
</script>
</head>
<body bgcolor=”#ffffff”>
<object classid=”clsid:d27cdb6e-ae6d-11cf-96b8-444553540000″ codebase=”http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0″ width=”550″ height=”400″ id=”test” align=”middle”>
<param name=”allowScriptAccess” value=”sameDomain” />
<param name=”allowFullScreen” value=”false” />
<param name=”movie” value=”test.swf” />
<param name=”quality” value=”high” />
<param name=”bgcolor” value=”#ffffff” />
<embed src=”test.swf” quality=”high” bgcolor=”#ffffff” width=”550″ height=”400″ name=”test” align=”middle” allowScriptAccess=”always” allowFullScreen=”false” type=”application/x-shockwave-flash” pluginspage=”http://www.macromedia.com/go/getflashplayer” />
</object>
<form name=”form1″ onSubmit=”return false;”>
<input type=”button” value=”Send” onClick=”onFlashReady();” /><br />
</form>
</body></html>
E no action script criei um campo instanciado de tf
E o código é:
import flash.external.*;
System.security.allowDomain(“http://localhost”);
tf.text = “Flash loaded and ready!”;
tf.text += “\nEI available: ” + ExternalInterface.available;
var wasSuccessful:Boolean = ExternalInterface.addCallback(“callAS”, this, func);
tf.text += “\nAdd callback success: ” + wasSuccessful;
greeting = String(ExternalInterface.call(“callJS”, “Hello JS!”));
tf.text += “\nI called Javascript and it said: ” + greeting;function func(value:String) {
tf.text += “\nJavascript called me, saying: ” + value;
}
E é só galera
Até a próxima
[...] blog dele, ele já postou ótimos exemplos, de utilizar a class externalinterface, então deixo por aqui também, o exemplo do código fonte que ele fez para mim. O javascript fica [...]