INTERFETE 2 WEB

External Interface in Actionscript 3.0 Javascript apelat din Actionscript


by  Alexandru


 

 

         Clasa ExternalInterface din actionscript rezolva o problema foarte importanta, comunicarea intre actionscript si javascript.

         Metoda ExternalInterface.call() executa cod in the containerul aplicatiei. Functia are nevoie de un parametru, numele functiei care se executa in container.

        Parametrii aditionali transmisi metodei ExternalInterface.call sunt transmisi mai departe ca parametrii ai functiei chemate de apelul call.

         Sa consideram un exemplu de demonstrare a comunicarii intre flash si javascript (un swf si fisierul .html care contine fisierul .swf).

         Fie functia mulNumbers in javascript, definit in tag-ul head al fisierului .html

         Daca vrem sa apelam aceasta functie din actionscript, se foloseste clasa ExternalInterface.

 

//fragment de cod javascript; functia mulNumbers se defineste in head-->  

 

    // inmulteste cele 2 numere

    function mulNumbers(num1, num2)

    {

        return (num1 + num2);

    }

 

 

//fragment de cod actionscript 

var term1:uint = 2; 

var term2:uint = 6; 

 

var res:uint = ExternalInterface.call("mulNumbers", term1, term2); 

 

Parametrii functiei ExternalInterface.call sunt: primul parametru e numele functiei definita in javascript, iar urmatorii 2 parametrii(term1, term2) vor fi transmisi 

functiei mulNumbers ia res va intoarce 12. 

 

 

        Actionscript apelat din Javascript.

 

         Exista si inversul procedeului de mai sus, adica o functie scrisa in Actionscript poate fi apelata in Javascript.

         Pentru a realiza acest lucru, se foloseste metoda addCallback() a ExternalInterface care face vizibila o functie actionscript in aplicatia container.

 

De exemplu functia scrisa in actioscript 

 

function callMe(str:String):String 

    return "hello" + str;

ExternalInterface.addCallback("myFunction", callMe); 

 

este vazuta in "exterior" sub numele de myFunction si va fi apelata in javascript cu acest nume; de exemplu:

 

 

    // callResult va retine "hello vasile"

    var callResult = FLobject.myFunction("vasile");

 

 

unde FLobject este numele swf-ului in fisierul html. 

 

 

        O alta aplicatie interesanta a ExternalInterface este comunicarea intre 2 swf-uri incluse in acelasi container html.

        Acest lucru se face usor folosind cele 2 metode de mai sus. Un swf transmite datele in exterior (in javascript) folosind addCallback, iar celelalt swf poate

vedea datele transmise printr-un apel call(). 

 

Jocuri
Free Web Hosting