Kako povezati Flash s blagodatima PHP / ASP skripti?
Odgovor zna Vlaho Soletic - SHoLa u novom clanku.
Zarada
za webmajstore: SportingBet partner program
SportingBet
je poznata europska online sportska kladionica i casino
koja vam nudi mogucnost unosne zarade. Uclanite se u
njihov partner (affiliate) program, promovirajte kladjenje
putem Interneta i zaradite. Zaradit cete 20
eura za svakog posjetitelja koji putem vaseg
weba posjeti stranice SportingBeta, registrira se i
uplati barem 20 eura. Isplata je jednom mjesecno.
Uclaniti se mozete cak i ako se vas web obraca iskljucivo
domacim posjetiteljima: SportingBet web u potpunosti
je prilagodjen i preveden na hrvatski, srpski i slovenski
jezik pa cete moci dobro unovciti domace surfere
koji se mogu kladiti na razne sportove, pa cak i na
lokalne lige.
Marketinski tim rado ce saslusati vase ideje o inovativnim
nacinima promocije, sto znaci da cete moci aktivno sudjelovati
u maksimiziranju vase zarade.
Za prijavu u partner program kliknite link "Postani
partner" na dnu glavnog izbornika s lijeve strane.
Posjetite http://hr.SportingBet.com.
Flash
i server-side skripte (PHP/ASP): slanje i primanje varijabli
Napisao: Vlaho Soletic
- SHoLa © 2001 - 2006
Flash se, osim za animaciju, polako ali sigurno pocinje
koristiti i za kreaciju web aplikacija te za rjesavanje
raznolikih problema danasnjeg weba. Iako se za web aplikacije
danas uglavnom koriste server-side skripte
(uglavnom PHP/ASP), moguce je istovjetne aplikacije
u potpunosti napraviti pomocu Flash-a. U ovom cemo vam
clanku pokazati kako Flash povezati s PHP/ASP skriptama.
Zasto
kreirati aplikaciju u Flash-u?
Kao prvo, Flash aplikacija samostalan je objekt koji
se u browser treba ucitati samo jedanput - i to je to.
Flash aplikacijama nedostaju neke mane koje imaju server-side
skripte. Jedna je od tih mana cinjenica da se skripta
pokrece na serveru i da se trebaju cekati rezultati
koji se prikazuju u browseru. Broj upita rezultirat
ce upravo istom broju ucitavanja (osvjezavanja) stranice
u browser. Iako ucitavanje ovisi o vise cimbenika (grafika
na stranici, brzina servera, upit u bazu, itd.), ta
je procedura svejedno dosadna i tu se nista ne moze
napraviti.
Nasuprot tome, jednom kad se Flash aplikacija ucita,
nema potrebe za naknadnim ucitavanjem stranice. Svi
programski moduli, slike, animacije mogu se naknadno
ucitavati izravno u Flash objekt, a da korisnik za ucitavanje
niti ne zna. Brzina ucitavanja ovdje doduse opet ovisi
o serveru, ali kako ce ucitavanje dozivjeti korisnik,
ovisi iskljucivo o Flash dizajneru/programeru.
Flash kao temelj buducih aplikacija nece ni u kojem
slucaju moci u potpunosti zamijeniti server-side skriptne
jezike. Dapace, da bi Flash komunicirao s vanjskim svijetom,
mora se osloniti na jedan oblik server-side skripti.
Iako se radi na FlashComm serverima, bojim se da smo
jos uvijek daleko od potpunog Flash okruzenja za razmjenu
podataka.
Flash i vanjske varijable
Jezik Flash alata, ActionScripting, mocan je sve dok
radi unutar svoje primarne platforme, Flash playera.
Taj je jezik dosta blizak C-u i PHP-u i lako ga je
nauciti. Vrlo cete brzo moci kreirati neke osnovne aplikacije.
Ipak, zatreba li vam interakcija s vanjskim svijetom,
na primjer slanje e-maila ili potrazivanje rezultata
na upit u bazu, nailazimo na probleme.
Flash nije u mogucnosti samostalno svrljati po disku
ili bazama podataka, niti koristiti HTTP funkcije, sto
je u neku ruku dobro zbog smanjenja sigurnosnih rizika.
Iako Flash nema mogucnosti interakcije kao server-side
jezici, Flash je u mogucnosti primati varijable iz vanjskog
svijeta kao niz stringova.
Kako poslati varijablu Flash playeru?
Flash moze bez problema ucitati varijable iz bilo kakvog
tekstualnog oblika i to na sljedeci nacin:
loadVariablesNum("mojTekst.txt", "0"); Sve dok doticna
datoteka sadrzi neku varijablu:
mojaVarijabla= moj tekst, bla, bla, bla, bla... varijabla ce biti ucitana u Flash.
Datoteka ne mora biti ".txt" oblika, vec
moze biti i u .html obliku (varijabla, ne i dokument).
Datoteka se moze kreirati iz nekog vanjskog oblika i
jednom kada posaljemo upit za njom, ona bi morala i
postojati. Ovdje se postavlja pitanje moze li se utjecati
na vec postojece varijable unutar Flash-a bez upotrebe
server-side-a i vanjskih datoteka?
Odgovor je: moze se.
Flash player (temeljna aplikacija koja izvodi .swf
datoteke) u stanju je primiti varijable iz vanjskog
izvora.
Najobicniji HTML kôd:
<OBJECT>
<PARAM name="movie" value="mojFilm.swf?mojaVarijabla=nesto_vazno">
<PARAM name="quality" value="high">
<EMBED src="mojFilm.swf?mojaVarijabla=nesto_vazno"></EMBED>
</OBJECT>
Eto ga - na jednostavan smo nacin promijenili varijablu
unutar Flash filma.
Varijablu je moguce mijenjati i kontinuirano putem
Javascripta, ali to smo opisali u jednom od prijasnjih
clanaka.
Flash: GET i POST
Da bismo povecali korisnost i interaktivnost Flash
aplikacija, potrebno je omoguciti Flash-u komunikaciju
s vanjskim svijetom.
Upotrebom funkcija loadVariables() i loadVariablesNum()
moguce je poslati i primiti varijable iz bilo koje server-side
skripte.
Pri tome treba imati na umu da je komunikacija uvijek
obostrana, odnosno Flash ce u isto vrijeme poslati svoje
varijable, ali i primiti sve varijable iz skripte koje
su definirane u Actionscript razumljivom obliku.
Razlika izmedju loadVariables() i loadVariablesNum()
u tome je sto loadVariables() treba ciljani MC za upload/download
varijabli, dok loadVariablesNum() koristi ciljani level.
Primjer:
loadVariablesNum("mojaSkripta.xxx","0","GET"); Ovim
smo putem putem GET-a poslali sve varijable, trenutno
dostupne u levelu, nasoj skripti koja bi trebala procesirati
dobivene podatke. U isto smo vrijeme "posrkali"
sve varijable koja je "poslala" nasa skripta.
Varijable koje su poslane odnose se samo na one koje
se nalaze u relativnom root-u, odakle su pozvane (bilo
_root timeline-a ili root nekog MC-a). Dakle, varijable
definirane u _root-u, buttonima iz root-a, itd.
Varijabla _root.mojMC.varijabla nece biti poslana,
ali nece biti poslane niti varijable iz _root-a ako
je funkcija loadVariablesNum pozvana iz _root.mojMC.
Istovjetno vrijedi i za ucitavanje varijabli.
Flash i PHP
Dakle, varijable mozemo slati i primati bez obzira
nalazimo li se na stran server-side skripte ili Flash
aplikacije.
Pozabavimo se malo skriptama za slanje i primanje:
<?php $mojaVarijabla=$_GET["mojaVarijabla"]; mojaFunkcija(); ?> Skripta
ce primiti varijablu iz Flasha i nakon toga je procesuirati.
Mala napomena: ovo je skripta koja iskljucivo sluzi
kao vanjski Flash modul. Skripte ne mogu sadrzavati
HTML kôd niti su u mogucnosti samostalno prikazivati
podatke u korisnickom browseru.
Ako zelimo poslati varijablu Flashu:
<?php $nekaVarijabla="Ovo je neki tekst"; print $nekaVarijabla; ?> Dakle,
PHP ce ispisati sadrzaj $nekaVarijabla, a Flash
ce taj tekst procitati. Flash ne moze koristiti PHP
varijable kao takve.
Primanje i slanje u isto vrijeme:
<?php //Primamo varijable $mojaVarijabla=$_GET["mojaVarijabla"];
//Ispitujemo varijable i saljemo natrag Flashu if($mojaVarijabla=="neki test"){ print "_root.nekiMC.varijabla=nekiTekst"; } ?>
U ovom primjeru ne samo da smo obradili poslani string
iz Flash-a, vec smo poslali nazad varijablu u Flash
i to u ciljani MC koji se nalazi u root-u timeline-a.
<IFRAME>
Kako smo vec vidjeli, slanje i primanje varijabli
izmedju Flash-a i server-side skripti upravo je trivijalno
i moze se iskoristiti na mnoge nacine da bismo upravljali
Flashom, ali i HTTP funkcijama.
Postavlja se problem kako Flash integrirati u PHP
dokument, a da on i dalje bude funkcionalan u korisnickim
browserima?
Da bismo izvrsili PHP kôd namijenjen za prikaz u korisnickim
browserima i u isto vrijeme omogucili Flash-u da se
neometano vrti, mozemo iskoristiti <IFRAME> kao
kontejner za PHP kôd, a Flash ce se i dalje nalaziti
u 'staticnom' HTML-u. Ovo je nuzno jer bi se Flash animacija
inace resetirala svaki put kada se pocne izvrsavati
PHP: PHP uzrokuje da se se stranica uvijek nanovo ucitava
u browser.
Kao primjer pogledajmo Flash izbornik koji poziva
PHP stranicu u <IFRAME>-u. Flash izbornik se vise
se ne bi trebao resetirati nakon neke uvodne animacije.
Flash objekti u dinamickim stranicama mogu primati
varijable isto kao i same dinamicke stranice.
Pa pogledajmo:
Glavna se stranica sastoji od Flash izbornika i iframe-a
s dinamickim sadrzajem. Neka iframe ima naziv 'mojFrame'.
Nitko nam ne brani da pozovemo dinamicku stranicu
vec iz samog Flash-a u zadani iframe:
// Definirajmo varijable za Flash meni mojMeni="mojPHP.php?stranica="; mojaStranica="neka stranica";
// unutar button objekta on(release){ getURL(mojMeni + mojaStranica,"mojFrame"); }
Varijabla 'mojaStranica' moze se proizvoljno
mijenjati unutar Flash-a, a ovisi o nazivima dinamickih
stranica.
Varijablu koju smo proslijedili dinamickoj stranici
unutar iframe-a mozemo koristiti kako za skriptu, tako
i za Flash objekt koji se nalazi unutar nje same:
<?php $stranica=$GET_['stranica'];function mojFlash(){ global $stranica; $flash="<OBJECT>\n"; $flash.="<PARAM name=\"movie\" value="mojFilm.swf?stranica=$stranica\">\n"; $flash.="<PARAM name=\"quality\" value=\"high\">\n"; $flash.="<EMBED src=\"mojFilm.swf?stranica=$stranica\"></EMBED>\n"; $flash.="</OBJECT>\n"; print $flash; } ?> <!—HTML kod --> <?php //mjesto Flash objekta mojFlash(); ?> <!—HTML kod -->
Ne samo da smo uspjesno poslali varijable iz Flasha,
nego smo iste integrirali u potpuno drugi Flash objekt
koji se nalazi unutar dinamickih stranica.
I za kraj...
Kako vidimo, sacuvali smo jedan dio stranice 'staticnim'
da bi Flash izbornik ostao postedjen osvjezavanja stranice.
<IFRAME> smo koristili kao kontejner za nove stranice
i Flash objekte, a takodjer smo pokazali da se iz Flash-a
i PHP kôdom moze bez problema manipulirati target atributima
ciljanih frame-ova u HTML kôdu.
Na kraju mozemo samo zakljuciti da postojece tehnologije
HTML-a, PHP-a (a tako i ASP-a) i Flasha ne moramo koristiti
iskljucivo kao zasebne tehnologije, vec ih u mnogocemu
mozemo kombinirati, sve u svrhu sto boljeg nam weba.
O autoru:
Vlaho Soletic - SHoLa
(shola@net.hr) - Vlaho
Soletic, ili SHoLa kako sebe voli nazivati, do nedavno
je bio student FESB-a u Splitu. Sada, kao dipl.ing.
elektrotehnike pokusava naci posao u svojoj bransi (elektrokomunikacije),
u svom rodnom gradu Dubrovniku. Najdrazi mu je rad u
Photoshopu i CoolEditPro-u, a svoje uratke u zadnje
vrijeme kombinira upotrebom flasha i web aplikacija.
Svoje znanje o Photoshopu, CoolEditProu, htmlu, xmlu,
phpu, javascriptama i flashu uspjesno je pretocio u
dva aktivna sitea: www.dubluesfest.coms.ph
i www.revolt.co.ba/shola,
koje u potpunosti sam administrira.
|