Više volim da koristim ugrađene klase (kad god je to moguće) pa ću ti dati primer kako se koristi
LocalConnection klasa. Pretpostavimo da imaš dva swf-a koji se zovu "AS2" i "AS3" i u skladu sa tim se razlikuju po verziji AS-a koje koriste. Ti želiš da ostvariš komunikaciju između njih pa kad pritisneš taster koji se nalazi u AS2 swf-u želiš da se pozove funkcija koja se nalazi u AS3 swf-u, i obratno. Dodatno, u jedan i drugi swf će se u funkcije koje se pozivaju proslediti parametri "ime" i "prezime". Kao rezultat toga u poljima će se prikazati ime i prezime koje je uneto u onaj drugi swf. Primer možeš pogledati ovde:
http://dhost.info/manofhonor/lokalna_konekcija/lokalna_konekcija.html.
Ono što je zajedničko i za AS2 i AS3 je pravljenje instance
LocalConnection klase, na sledeći način:
Code:
var primalac:LocalConnection = new LocalConnection();
var posiljalac:LocalConnection = new LocalConnection();
Znači prave se dve instance, po jedna za slanje i prijem. Kada želiš da iz AS3 swf-a pozoveš funkciju koja se nalazi u AS2 swf-u tada koristiš instancu
LocalConnection klase koja se nalazi u promenljivoj "posiljalac", a to ostvaruješ na sledeći način:
Code:
posiljalac.send("naziv_konekcije","naziv_funkcije",parametri);
Dakle, pozivaš metod
send() kome prosleđuješ 3 parametra: naziv konekcije preko koje želiš da komuniciraš sa drugim swf-om, naziv funkcije koju pozivaš iz tog swf-a i na kraju parametre koje želiš da proslediš funkciji (ovo je opciono i može se izostaviti). Ovo je primenljivo i u AS2 kada želiš da pozoveš funkciju koja se nalazi u AS3 swf-u.
Kada želiš da prihvatiš konekciju koju je uspostavio drugi swf (kada želiš da dozvoliš AS3 swf-u da pozove funkciju u AS2 swf-u) onda koristiš
connect() metod koji prihvata jedan parametar, a to je naziv konekcije (koja mora da odgovara nazivu konekcije navedenom u AS3 swf-u):
Code:
primalac.connect("naziv_konekcije");
Sada dolazimo do razlike u AS3 i AS2 kodu:
U AS3 navodimo sledeće:
Code:
primalac.client = this;
function naziv_funkcije(parametri):void
{
// ovde se nalazi kod koji ce se izvrsiti pozivom ove funkcije
}
I onda sledi naziv funkcije koja mora odgovarati nazivu funkcije koju smo naveli u AS2 swf-u.
U AS2 napisaćemo sledeće:
Code:
primalac.naziv_funkcije = function(parametri):Void
{
// ovde se nalazi kod koji ce se izvrsiti pozivom ove funkcije
}
U ovom slucaju naziv funkcije mora odgovarati nazivu funkcije koju smo naveli u AS3 swf-u.
U tvom slučaju u AS2 swf-u kod bi trebao da izgleda ovako:
Code:
var posiljalac:LocalConnection = new LocalConnection();
goBTN.onRelease=function():Void
{
posiljalac.send("goBTNclick","goPrint","crop");
}
U AS3 swf-u bi trebalo da se nalazi sledeće:
Code:
var primalac:LocalConnection = new LocalConnection();
primalac.connect("goBTNclick");
primalac.client = this;
function goPrint(crop):void
{
// ovde se nalazi kod koji ce se izvrsiti pozivom ove funkcije
}
Pogledajte odličnu knjigu ActionScript 3.0: Visual QuickStart Guide na Safari Books Online unošenjem kupon koda TPJVJGA:
https://ssl.safaribooksonline.com/safarienabled
Obavezno pogledati besplatan tutorijal "Installing Apache, MySQL, and PHP" na lynda.com:
http://www.lynda.com/MySQL-5-t...che-mysql-and-php/77958-2.html