Juba varastest versioonidest (Flash 5) toetab Flash võimalust intergreerida rakendus andmebaasi või mõne muu välise andmete töötlemisvahendiga. Vaatleme, mil viisil on võimalik andmeid Flash rakendusest välja saata ning koostame lihtsa tagasiside vormi.
Õpime:
Näidetest failid vorm.fla, vorm.swf, vorm.php, vorm_mysql.php
Kujundame vormi, nagu näha joonisel 7.1.
![]() |
Selleks loome kokku kaheksa tekstikasti, esimesed neli lahtrite selgituseks ning teised neli etendavad sisendikastide rolli. Et tavalisest tekstikastist saaks kasutaja teksti sisendikast, tuleb see seadistuses vastavalt määrata (vt. joonis 7.2), valides teksti tüübiks sisendteksti (Input text). Varasemates harjutusülesannetes oleme kasutanud staatilisi (muutumatu sisuga) ja dünaamilisi (ActionScripti abil muutuva sisuga) tekstikaste.
![]() |
Lisaks vajame veel nuppu, millele klõpsamisel andmed edasi saadetakse.
Sisendikastidele tuleb anda muutujanimed, kirjutades need vastava tekstikasti seadetes lahtrisse Var. Nendeks on vastavalt: eesnimi, perenimi, email, teade. Samanimelised muutujad väljastatakse hiljem teisele rakendusele.
Kirjutame nupule uuel kihil järgneva skripti:
saadaNupp.onRelease = function():Void{ getURL("http://koduleht.com/vorm.php",0,"post"); }
Selleks on eelnevalt lavale lohistatud nupule vaja anda instantsinimi saadaNupp. Funktsiooni getURL() saab kasutada dokumendi laadimiseks kindlalt URL-ilt või muutujate saatmiseks teisele rakendusele selleks defineeritud URL-il. [AS2LR, lk. 59-61] Parameetriteks on url, aken - määrab ära akna või HTML-freimi, kuhu dokument peaks laaditama (meie näites lihtsalt "0") ning meetodi, kuidas muutujad saata (GET või POST, erinevad sellepoolest, kas meetodid saadetakse kaasa URL'iga või mitte).
Nagu näha, piisab andmete väljaspoole saatmiseks sisuliselt vaid ühest koodireast. Sarnaselt võimaldab funktsioon loadVariablesNum() ka andmeid välisallikast (ColdFusion'i, CGI, ASP või PHP programmeerimiskeelte abil genereeritud tekstist või failist) sisse lugeda.
Flashi-poolne osa on sellega tehtud – andmed saadetakse välja. Näitena kirjutame PHP programmi. PHP koodi jooksutamiseks on tarvis Apache't või mõnda muud veebiserverit ning PHP-d. MySQL andmebaasi võimaluste kasutamiseks peab rakendatud olema MySQL-server.
Antud kood kuvab veebilehel Flashist saadud andmete põhjal ees- ja perekonnanime. See ei õigusta küll tagasiside vormi kasutamist, kuid näitab, mil viisil Flashi poolt väljastatud andmeid kuvada.
<?php echo '<html><head>'; echo '<meta http-equiv="content-type" content="text/html; charset=utf-8" />'; echo '</head><body>'; echo 'Tere,'.$_REQUEST[eesnimi].' '.$_REQUEST[perenimi].'!<br />'; echo 'Töötab!'; echo '</body></html>'; ?>
Vaikimisi eeldavad Flash Player 7 ning selle hilisemad versioonid, et kogu tekst, millega need kokku puutuvad, on UTF-8 kodeeringus. Seetõttu peaksid välised teksti- ja XML-failid, mida rakendus kasutab, olema sarnaselt salvestatud UTF-8 kodeeringus. Vastasel korral on probleeme näiteks täpitähtede kuvamisel.
Järgnev kood on näide PHP abil MySQL andmebaasiga ühendamisest. Esmalt kontrollitakse if-tingimuse abil, kas lehele saabudes on kaasa antud muutuja teade, kui see on tõene, luuakse ühendus andmebaasiga ning salvestatakse kirje. Antud juhul ei ole tegemist ainuõige lahendusega, vaid katsetamiseks mõeldud koodiga. Väljad server, kasutajanimi, parool, andmebaas ning tabel tuleks koodis asendada kehtivatega.
<?php $REQUEST[teade] = $teade; if(isset($teade)){ mysql_connect("server", "kasutajanimi", "parool"); mysql_select_db("andmebaas"); $lause="INSERT INTO tabel (eesnimi, perenimi, email, teade) VALUES ('$_REQUEST[eesnimi]', '$_REQUEST[perenimi]', '$_REQUEST[email]', '$_REQUEST[teade]')"; mysql_query($lause); mysql_close(); echo "Korras!"; } ?>