Örneğimize gelince, yeni bir flash dosyası içerisine iki ayrı textbox ve bir de buton yerleştirdikten sonra bu dosyayı ExternalInterfaceExample.fla adı ile kayıt ediyoruz. Daha sonra bu nesnelere sırası ile sending_ti, received_ti ve send_button isimlerini veriyoruz. Flash dosyamızın ilk frame'inde yazılması gereken kod ise şu şekilde.
import flash.external.ExternalInterface;
function getTextFromJavaScript(str:String):Void
{
received_ti.text = "" + str;
}
ExternalInterface.addCallback("sendTextToFlash", this, getTextFromJavaScript);
function clickSend(eventObj:Object):Void
{
var jsArgument:String = sending_ti.text;
var result:Object = ExternalInterface.call("getTextFromFlash", jsArgument);
received_ti.text = "Returned: " + result;
}
send_button.addEventListener("click", clickSend);
Örneğimizin HTML tarafındaki kodu ise aşağıdaki gibi.
<script > function getFlashMovie(movieName) { var isIE = navigator.appName.indexOf("Microsoft") != -1; return (isIE) ? window[movieName] : document[movieName]; } function formSend() { var text = document.htmlForm.sendField.value; getFlashMovie("ExternalInterfaceExample").sendTextToFlash(text); } function getTextFromFlash(str) { document.htmlForm.receivedField.value = "From Flash: " + str; return str + " received"; } </script>
Kodları kopyalayıp HTML dosyası içerisine yapıştırdıktan sonra kaydettiğimiz dosyayı çalıştırıyoruz. Daha önce belirttiğim gibi güvenlik uyarısı ile karşılaşacaksınız. Bu uyarıyı önemseyerek Settings tuşuna basarak bir istisna oluşturmalısınız. En sonunda sağlıklı bir şekilde dosyanızı yeniden çalıştırın ve göreceksiniz, formdan gönderilen veriler Flash dosyası içerisinde görüntüleniyor.
<form name="htmlForm" method="POST" action="javascript:formSend();"> Sending to ActionScript:<br /> <input type="text" name="sendField" value="" /><br /> <input type="submit" value="Send" /><br /> <br /> Received from ActionScript:<br /> <input type="text" name="receivedField"> </form>
Bu örnek kodu ADV Manager Editör panelinde kullanmamız söz konusu olacaktır.
0 yorum:
Yorum Gönder