Curs Flash

In aceasta lectie sunt prezentate lucruri mai avansate legate de crearea obiectelor cu clasa Object, cum sunt imbricarea si parcurgerea lor.

1. Imbricare obiecte

Prin imbricarea obiectelor se intelege crearea de obiecte in interiorul altui obiect. Astfel, proprietatea unui obiect (valoarea ei) poate fi un Array sau chiar un alt obiect.
Studiind exemplul urmator si explicatiile din el, se poate intelege modul de realizare a obiectelor imbricate.

// Se creaza un obiect principal "Cursuri", cu 2 proprietati: "tip" si "site", si o metota "getCurs()"
// Prima proprietate, "tip", va avea ca valoare un Array cu 2 elemente
// A doua, "site", va avea ca valoare un alt obiect ce va avea si el o proprietate "url"
// Metoda "getCurs()" va prelua, dupa un parametru, o valoare din prima proprietate si
// pe cea din "url" (din obiectul imbricat), prin a doua proprietate

var Cursuri = new Object();
 Cursuri.tip = ['lectii', 'tutoriale'];         // Prima proprietate, un Array
 Cursuri.site = new Object();         // A doua proprietate (obiect intern)
   Cursuri.site.url = 'marplo.net';         // proprietatea obiectului intern
 Cursuri.getCurs = function(nr:int) {           // Metoda obiectului "Cursuri"
   var sir1 = this.tip[nr];             // Preia o valoare din proprietatea "tip"
   var sir2 = this.site.url;          // Preia valoarea proprietatii "url" (a obiectului imbricat)
   return sir1+ ' - '+ sir2
 };

// Se afiseaza in Output rezultatul returnat de apelarea metodei "getCurs()"
trace(Cursuri.getCurs(1));           // tutoriale - marplo.net
- Proprietatea "site" este definita ca un sub-obiect in cel principal (Cursuri);
- Observati ordinea apelarii din nstructiunea "this.site.url". Aceasta apeleaza proprietatea "url" care e definita in sub-obiectul "site" din obiectul principal (specificat prin "this").
- Prin expresia "Cursuri.getCurs(1)", metoda "getCurs" preia numarul 1 si, conform instructiunii "this.tip[nr]" obtine elementul cu indice 1 din Array-ul stocat in proprietatea "tip".

2. Parcurge obiecte

Parcurgerea elementelor dintr-un obiect se face la fel ca la parcurgerea unui Array asociativ, cu instructiunea "for ... in" sau "for each ... in".
Parcurgerea unui obiect este necesara cand se doreste utilizarea dinamica a elementelor din el, in functie de niste valori variabile. De obicei se foloseste pentru a verifica valorile proprietatilor sau numele lor si a metodelor.
Studiati urmatorul exemplu si explicatiile din el, in care sunt prezentate ambele modalitati; "for ... in" in cadrul unei functii "parsObj()" si "for each ... in" separat.

// Functia pt. parcurgere obiecte
// Preia 2 argumente: "obj" pt. obiectul de parcurs si "val" pt. valoarea ce trebuie cautata in el
function parsObj(obj:Object, val:*):String
{
  // Se defineste o variabila in care se adauga valoarea ce trebuie returnata de functie
  var re:String = 'no prop';

  //parcurgere "obj" cu "for ... in"
  for(var key:String in obj)
  {
    // Daca valoarea elementului parcurs este aceeasi cu cea din "val"
    // Retine in "re" numele acelei proprietati si opreste parcurgerea
    if(obj[key]==val)
	{
	  re = key;
	  break;
	}
  }

  return re;
}

// Definire obiect cu 2 proprietati ("curs", "tutorial") si o metoda "Suma"
var unObiect:Object = new Object();
 unObiect.curs = 'Flash';
 unObiect.tutorial = 'AS3';
 unObiect.Suma = function(a:Number, b:Number):Number {
    return a+b;
  }

// Apeleaza functia "parsObj()" cu obiectul si valoarea 'AS3'
trace(parsObj(unObiect, 'AS3'));        // tutorial

// Se parcurge elementele din "unObiect" cu "for each ... in"
// Afiseaza in Output valoarea fiecarui element parcurs
for each(var elm:* in unObiect)
{
  trace(elm);
}

/* Va afisa:
  Flash
  function Function() {}
  AS3
*/
- Prin codul din corpul lui "for(var key:String in obj)" functia cauta proprietatea (key) din "obj" a carei valoare este "val" si returneaza numele ei; daca nu e gasita, va returna valoarea initiala din "re" ('no prop'). - A doua instructiune "for each(var elm:* in unObiect)" afiseaza cu "trace()" valoarea din fiecare element parcurs (retinuta in "elm").

Fisierele FLA cu exemplele din aceasta lectie pot fi descarcate de la: Creare Obiecte avansati

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce tag se foloseste pentru a adauga liste in elemente <ul> si <ol>?
<dt> <dd> <li>
<ul>
 <li>http://coursesweb.net/html/</li>
 <li>http://www.marplo.net/html/</li>
</ul>
Care valoare a proprietatii "display" seteaza elementul ca tip bloc si afiseaza un punct in fata?
block list-item inline-block
.some_class {
  display: list-item;
}
Care instructiune JavaScript transforma un obiect in sir JSON.
JSON.parse() JSON.stringify eval()
var obj = {
 "courses": ["php", "javascript", "ajax"]
};
var jsonstr = JSON.stringify(obj);
alert(jsonstr);    // {"courses":["php","javascript","ajax"]}
Indicati clasa PHP folosita pentru a lucra cu elemente HTML si XML in PHP.
stdClass PDO DOMDocument
$strhtml = '<body><div id="dv1">CoursesWeb.net</div></body>';
$dochtml = new DOMDocument();
$dochtml->loadHTML($strhtml);
$elm = $dochtml->getElementById("dv1");
echo $elm->nodeValue;    // CoursesWeb.net
Indicati forma de Prezent Continuu a verbului "to live" (a trai /a locui)
lived living liveing
I`m living here.
- Traiesc /Locuiesc aici.
Care este forma de Gerunziu (sau Participiu Prezent) a verbului "vivir" (a trai /a locui)?
viviĆ³ vivido viviendo
Estoy viviendo aquĆ­.
- Traiesc /Locuiesc aici.
Creare Obiecte - Imbricare si parcurgere

Last accessed pages

  1. Curs PHP MySQL, Tutoriale si Scripturi PHP (55279)
  2. Tutorial HTML5 (2770)
  3. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (131938)
  4. Introducere in HTML (13772)
  5. Curs HTML gratuit Tutoriale HTML5 (87960)

Popular pages this month

  1. Prezentul simplu si continuu - Present Tense Simple and Continuous (3978)
  2. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (3726)
  3. Curs HTML gratuit Tutoriale HTML5 (3146)
  4. Curs si Tutoriale JavaScript (2563)
  5. Curs CSS Online Tutoriale CSS3 (2365)