BluePink BluePink
XHost
Oferim servicii de instalare, configurare si monitorizare servere linux (router, firewall, dns, web, email, baze de date, aplicatii, server de backup, domain controller, share de retea) de la 50 eur / instalare. Pentru detalii accesati site-ul BluePink.

Flash : incarcarea dinamica a informatiilor (imagini/filme/fisiere de paramatrii/xml)

 

Introducere

1. Incarcarea dinamica a informatiilor - chestiuni generale

2.Lucrul cu datele externe(fisiere cu parametrii,fisiere XML)

3. Lucrul cu elemente media externe

Bibliografie



Introducere

Compania Macromedia nu exagereaza atunci cand afirma ca programul Flash reprezinta "standardul profesionist pentru realizari de mare efect". Este suficient sa vizitati cateva site-uri ca il utilizeaza, pentru a intelge cat de captivant este acest program. Folosind imagini, animatie, sunete si interactivitate, Flash poate incita, invata, amuza si oferi informatii practice. Literalmente sute de utilizatori detin deja playerul Flash gratuit (necesar vizionarii filmelor Flash). Faptul ca Macromedia continua sa distribuie cu atata eficacitate acest software inseamna ca publicul po- tential pentru lucrri realizate cu Flash este imens si un continua crestere. Instrumentele necesare pentru a creea filme Flash sunt la indemana tuturor. Dupa achizitia programului, singura investitie ce mai trebuie facuta este timpul necesar invatarii. Programul Flash poate fi descarcat de pe pagina http://www.macromedia.com si poate fi testat timp de 30 de zile inainte de a fi cumparat. Mediul Flash este amagitor de simplu : oricine poate incepe imediat sa deseneze si sa creeze animatii. Cu toate acestea, programul nu se comporta intotdeauna asa cum ne-am astepta. Cu o motivatie suficient de puternica, printr-o investitie moderata de timp, se va ajunge la concluzia ca avem de-a face cu un instru- ment puternic de comunicare. Programul Flash este atat de unic, incat uneori este de preferat sa aveti cat mai putina experienta. Daca detineti idei preconcepute despre ce inseamna acest mediu sau despre cum ar trebui folosite instrumentele de desenare, ar fi mai bine sa uitati tot si sa porniti de la zero. Cu fiecare exercitiu facut, veti observa cum dobanditi cunostiinte si indemanari noi.

1. Incarcarea dinamica a informatiilor - chestiuni generale

Intr-un filmuletz simplu de animatie, playerul Flash ruleaza sevential scenele si cadrele filmului, utilizato- rul neavand nici un rol in modificarea ordinii prestabilite a acestora, sau a continutului acestora. Intr-un film interactiv, privitorul poate folosi tastatura si mouse-ul pentru a sari in diverse parti ale filmului, a misca sau modifica obiecte sau a introduce diferite informatii ce vor influenta intr-un fel sau altul secventele viitoare. Filmulete interactive se pot obtine prin creearea unui set de actiuni, adica a unui set de instructiuni scrise in Action Script, ce vor fi executatea la aparitia unui anumit eveniment. Acest eveniment poate fi fie atingerea unei anumite secvente din film, fie actiunea utilizatorului (click de mouse, apasarea unei taste,etc). Exista o multitudine de Action Scripts predefinite, dar se pot scrie altele noi daca se doreste acest lucru. Instructiunile pot genera o singura actiune, cum ar fi oprirea filmului , sau pot genera o secventa de actiuni, de exemplu ascunderea unor butoane dupa evaluarea unei conditii. Marea majoritate a actiunilor posibile nu necesita o experienta vasta in programare, insa pentru a realiza Scripturi mai complexe, este necesara o oarecare familiaritate cu limbajele de programare. Similar intr-un fel cu JavaScript, ActionScript este un limbaj de programare orientat pe obiecte. In acest gen de scripturi, informatia este organizata in clase. Se poate pleca de la clasele predefinite in ActionScript, sau se pot defini clase noi. La definirea unei clase, se vor preciza toate functiile si proprietatile obiectelor pe care clasa le reprezinta. Aceste obiecte pot contine date sau pot fi prezente ca si o succesiune de secvente in cadrul unui film.

2. Lucrul cu datele externe(fisiere cu parametrii,fisiere XML)

Incepand cu ultimele versiuni de Macromedia Flash, se poate folosi Action Script pentru a incarca date din fisiere sursa externe in fisiere SWF. De aseamenea, se pot trimite date din fisierele SWF pentru a fi pro- cesate de catre un server de aplicatii (cum ar fi Macromedia ColdFusion) sau o alta aplicatie de tip server cum sunt scripturile PHP sau Pearl. Playerul Flash poate trimite si incarca date prin HTTP sau HTTPS, cat si din fisiere text locale. Datele ce pot fi incarcate sau trimise de catre fisierele SWF pot fi in format XML, sau sub forma de perechi nume-valoare. Scripturile de tip server pot cere anumite date dintr-o baza de date si sa o transmita catre un fisier SWF. Prin salvarea datelor intr-o baza de date si preluarea lor ulterioara, se poate creea un fisier SWF cu un conti- nut dinamic si personaliza (de exemplu o lista de cumparaturi pentru un magazin virtual, sau un forum de discutii. Functiile Action Script ce permit transferul de date se folosesc de un anumit protocol si necesita ca datele sa fie formatate intr-un anumit mod. Aceste functii sunt : - metodele din clasa MovieClip ce folosesc protocolul HTTP si HTTPS pentru a transmite datele in format codat de tip URL sunt : getURL(), loadVariables(), loadVariablesNum(), loadMovie() si loadMovieNum(). - metodele de tip LoadVars ce folosesc acelati protocol si acelasi tip de codificare sunt : load(), send() si sendAndLoad(). - functiile ce folosesc protocolul HTTP si HTTPS pentru a transmite informatii in format XML sunt : XML.send(), XML.load() si XML.sendAndLoad().
- functiile ce folosesc sockets TCP/IP pentru a transmite date in format XML sunt: XMLSocket.connect() si XMLSocket.send(). Toate aceste functii sunt asincrone, momentul in care se va primi rezultatul nu poate fi aproximat. De aceea, inainte de a folosi datele in fisierul SWF, trebuie verificat daca au fost intr-adevar incarcate. Fiecare functie sau metoda are o tehnica specifica prin care se poate verifica daca datele au fost corect incarcate. De obicei datele se incarca cu functiile prezentate mai sus, iar executia scriptului se asociaza aparitiei unui eveniment in timpul rularii. Funtia cea mai des folosita in asociere cu evenimentul este onClipEvent(data). Aceasta are cate o forma specifica pentru fiecare din tipurile de date prezentate mai sus. Un exemplu de incarcare a datelor intr-un fisier SWF este urmatorul : presupunand ca avem un joc la care trebuie trebuie memorate cele mai bune scoruri. Acestea pot fi salvate intr-un fisier si vor fi incarcate in fisierul SWF al jocului la fiecare rulare. Functia apelanta ar putea arata in acest fel :

 loadVariables("http://www.mySite.com/scripts/high_score.php", _root.scoreClip, GET);

Orice variabila incarcata cu functia de mai sus trebuie sa respecte urmatoarea regula : trebuie sa fie forma- tata folosind standardul MIME, application/x-www-form-urlencoded. Fisierul din care se vor incarca datele trebuie sa redea variabilele in acest format,pentru ca Flash sa le poata citi si recunoaste. Standardul XML (eXtensive Markup Language) incepe sa se impuna ca fiind standardul cel mai folosit pentru interschimbarea datelor in aplicatiile web. Diferenta intre tagurile XML si HTML este aceea ca in HTML, tagurile sunt folosite pentru a defini modul in care sunt scrise datele pe ecran, iar in XML, tagurile definesc tipul datelor si legaturile dintre ele. Metodele clasei ActionScript XML ne ofera posibilitatea de a configura datele XML din Flash ce trebuie trimise catre server si de a manipula datele primite de catre fisierele SWF. Urmatoarele functii folosesc proto- colul HTTP pentru a transmite date : - metoda load() primeste datele in format XML de la un URL si le incarca in fisierul SWF - metoda send() transmite un obiect XML catre un URL. Orice informatie returnata de catre acesta este transmisa catre alta fereastra a browserului. - metoda sendandload() le combina pe cele de mai sus in sensul ca orice informatie returnata de catre URL la primirea obiectului XML este incarcata in fisierul SWF. Pentru un schimb mai rapid de informatii cu aplicatia de tip server, ActionScript pune la dispozitia programa- torului o clasa built-in, XMLSockets, ce asigura o conexiune permanenta cu aplicatia-server. O conexiune prin sockets permite serverului sa ii trimita clientului informatiile in momentul in care acestea sunt gata, fara sa fie nevoie sa astepte o cerere, cum este cazul HTTP. Aceste conexiuni se folosesc mai ales pentru aplicatii in timp real. Datele sunt transmise sub forma unui string si trebuie sa fie in format XML. Pentru a creea o conexiune de tip socket, trebuie creeata o aplicatie de tip server care sa astepte cererile de conexiune si sa trimita ras- punsuri fisierelor SWF. Acest tip de aplicatie poate fi scris in orice limbaj de programare, de exemplu Java. Exemplu :

 

// Create a new XMLSocket object
sock = new XMLSocket();
// Call its connect() method to establish a connection with port 1024
// of the server at the URL
sock.connect("http://www.myserver.com", 1024);
// Define a function to assign to the sock object that handles
// the server's response. If the connection succeeds, send the
// myXML object. If it fails, provide an error message in a text
// field.
function onSockConnect(success){
if (success){
sock.send(myXML);
} else {
msg="There has been an error connecting to "+serverName;
}
}
// Assign the onSockConnect() function to the onConnect property
sock.onConnect = onSockConnect;

 

3. Lucrul cu elemente media externe

Pentru a reduce dimensiunile fisierelor SWF, este de preferat ca o parte din imaginile si fisierele MP3 folosite sa fie incarcate in timpul rularii. Avantajele acestui stil de lucru sunt multiple : reducerea dimensiunii initiale a fisierelor, lucru util mai ales in cazul unor conexiuni lente la Internet; modularizarea prezentarilor largi: acestea sunt 'sparte' in fisiere SWF mai mici ca dimensiune si mai usor de manipulat si mentinut; separarea detaliilor de imaginea generala; unele proprietati ale mediului sunt accesibile doar in momentul rularii prin ActionScript. Intr-o aplicatie Flash, in momentul rularii pot fi incarcate 4 tipuri de fisiere media : SWF, MP3, JPG si FLV. Playerul Flash poate incarca un element media de la orice adresa HTTP sau FTP, folosind protocolul "file ://". La incarcarea unui fisier SWF sau JPG intr-o aplicatie Flash, coltul stanga sus al imaginii este aplicat peste punctul de origine al filmului tinta. De obicei,acest punct este chiar in centrul ecranului. Din acest motiv se poate intampla ca imaginea sa apara usor descentrata. De asemenea,cand un element media este incarcat intr-un Timeline radacina, coltul stanga sus al imaginii se incarca peste coltul stanga sus al zonei de lucru, elementul media mosteneste toate atributele de scalare si rotatie ale clipului original, dar contextul initial al clipului se pierde. Flash suporta doar fisierele JPEG standard, nu si pe cele progresive. Un fisier SWF poate fi incarcat in alt fisier SWF din orice locatie de pe Internet. Totushi, pentru ca unul dintre cele doua fisiere sa aiba acces la datele incarcate in celalalt fisier, acestea trebuie neaparat sa provina de la acelasi domeniu. Ca si alternativa la a incarca un film intr-o aplicatie Flash, se poate face uz de ActionScript pentru a se incarca fisierul FVL in timpul rularii. Fisierele FVL pot fi create prin importarea unui clip in mediul Flash si salvarea sa cu extensia FVL. Avantajele folosirii fisierelor externe sunt: - posibilitate rularii de animatii mai lungi, ce vor fi pastrate in memoria Cash - un fisier extern poate avea altii parametri (de exemplu viteza de rulare) decat fisierul apelant - fisierele FVL externe nu intrerup rularea fiserului Flash apelant - manipularea continutului este mai usoara, deoarece se pot asocia evenimente. Exemplu de incarcare a unui fisier FVL :

 

// Create a NetConnection object:
var netConn:NetConnection = new NetConnection();
// Create a local streaming connection:
netConn.connect(null);
// Create a NetStream object and define an onStatus() function:
var netStream:NetStream = new NetStream(netConn);
netStream.onStatus = function(infoObject) {
              status.text += "Status (NetStream)" + newline;
  status.text += "Level: "+infoObject.level + newline;
status.text += "Code: "+infoObject.code + newline;
};
// Attach the NetStream video feed to the Video object:
my_video.attachVideo(netStream);
// Set the buffer time:
netStream.setBufferTime(5);
// Being playing the FLV file:
netStream.play("videoFile.flv");

 

Bibliografie

www.macromedia.com

Phillip Kerman  - Macromedia Flash 5, editura Teora