Učitavanje swf-ova u AS3 je slično kao i učitavanje ostalih fajlova samo što se u ovom slučaju koristi
Loader klasa (umesto
URLLoader klase za učitavanje na primer tekstualnih fajlova). Prvo se deklariše promenljiva u kojoj se nalazi instanca klase
URLRequest kojoj kao argument prosleđujemo putanju i naziv fajla koji želimo da učitamo:
Code:
var urlZahtev:URLRequest = new URLRequest("main.swf");
Sledeće je deklarisanje promenljive u kojoj će se nalaziti instanca klase
Loader:
Code:
var swfLoader:Loader = new Loader();
Sada dodajemo osluškivač događaja koji će pozvati funkciju kada se fajl uspešno učita:
Code:
swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, zavrsenoUcitavanje);
Ovde je potrebno naglasiti da se za razliku od
URLLoader objekta osluškivač događaja ne dodaje direktno na sam objekat već na njegovo svojstvo
contentLoaderInfo.
Sada učitavamo swf korišćenjem
load() metode kojoj kao argument prosleđujemo
URLRequest objekat:
Code:
swfLoader.load(urlZahtev);
Kada je fajl uspešno učitan pozivamo funkciju u kojoj dodajemo učitani swf na
stage:
Code:
function zavrsenoUcitavanje(event:Event):void
{
addChild(event.target.loader);
}
Sada se "main.swf" prikazuje na stage-u, a kako on ima iste dimenzije kao i AS3 fajl ne može se primetiti da je to ustvari zaseban fajl. u U AS3 fajlu se nalazi i google mapa koja se nije vidljiva sve dok se ne pritisne taster "contacts" u meniju. Da bi sve ovo funkcionisalo moramo da koristimo
LocalConnection klasu u oba fajla kako bi mogli da klikom na taster "contacts" da pozovemo funkciju koja se nalazi u AS3-u koja će prikazati mapu, kao i da je sakrijemo kada se pritisne na neki drugi taster u meniju. Kod za prikazivanje mape je isti kao u prethodnim primerima samo što sam sada dodao sledeće:
Code:
stage.addChild(mapa);
mapa.visible = false;
var konekcija:LocalConnection = new LocalConnection();
konekcija.connect("Konekcija");
konekcija.client = this;
function prikaziMapu():void
{
mapa.visible = true;
}
function sakrijMapu():void
{
mapa.visible = false;
}
Sad iz "main.swf" treba da pozovem funkciju
prikaziMapu() kada želim da je prikažem. To znači da u AS2-ci u funkciji koja prikazuje "contact" stranu treba da dodam sledeće:
Code:
function changePage(num)
{
if (num == 4)
{
var konekcija:LocalConnection = new LocalConnection();
konekcija.send("Konekcija","prikaziMapu");
page.gotoAndStop(2);
}
}
Kada želim a sakrijem mapu pozivam funkciju
sakrijMapu():
Code:
function hidePage(num)
{
if (broj == 4)
{
var konekcija:LocalConnection = new LocalConnection();
konekcija.send("Konekcija","sakrijMapu");
}
}
Možda se pitaš zašto sam mapu dodao na
stage a zatim je odmah sakrio, umesto da sam svaki put kad pozovem funkciju za kreiranje mape dodao je na stage a kada pzovem funkciju za sakrivanje mape uklonio je, odnosno:
Code:
function prikaziMapu():void
{
stage.addChild(mapa);
}
function sakrijMapu():void
{
stage.removeChild(mapa);
}
To je zato što je za prikazivanje mape potrebno nekoliko sekundi a moguće je da se posetilac sajta neće toliko dugo zadržati na toj strani pa neće moći ni da primeti mapu jer se ona nije još uvek učitala. Prvi način je bolji jer će se mapa u pozadini učitavati samo neće odmah biti vidljiva, ali će se zato odmah prikazati kada se klikne na taster "contacts".
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