Curs Flash

In aceasta lectie vor fi prezentate metode mai avansate de lucru cu Array.

1. Parcurgere Array

Pentru a parcurge un Array se folosesc oricare din instructiunile repetitive: for, while sau for each ... in (vedeti lectiile despre Instructiuni Repetitive).
Parcurgerea unui Array da posibilitatea aplicarii unei actiuni fiecarui element din el.
- Iata cate un exemplu cu fiecare.

Cu for()

var mAr:Array = [2, 6, 8];

// Se parcurge Array "mAr" cu "for()"
for(var i:int=0; i<mAr.length; i++)
{
  // Se dubleaza valoarea elementului curent
  mAr[i] *= 2;
}

// Verificare valori ale elementelor din "mAr" dupa parcurgere
trace(mAr);          // 4,12,16
- "var i:int=0;" seteaza indicele de la care incepe parcurgerea (se poate da si alta valoare in afara de 0, de la care element sa inceapa).
- "i<mAr.length;" face ca parcurgerea sa fie realizata pana la ultimul element.
- "i++" incrementeaza indicele cu o unitate, pt. fiecare parcurgere.
- In cadrul buclei "for()" (intre acolade) pot fi scrise orice instructiuni si operatii pt. elementul curent parcurs; acesta putand fi accesat cu indicele de ordine "i".

Cu while()

var mAr:Array = [2, 6, 8];

var i:int = 0;          // Se defineste indicele de ordine pt. parcurgere
// Se parcurge Array "mAr" cu "while()"
while(i<mAr.length)
{
  // Se dubleaza valoarea elementului curent
  mAr[i] *= 2;
  i++;          // Incrementeaza indicele ca sa treaca la urmatorul element
}

// Verificare valori ale elementelor din "mAr" dupa parcurgere
trace(mAr);          // 4,12,16

Cu for each ... in

var mAr:Array = [2, 6, 8];

// Se parcurge Array "mAr" cu "for each ... in"
for each(var elm:Number in mAr)
{
  // Se dubleaza valoarea elementului curent, care e stocat in "elm"
  elm *= 2;
  // Pot fi executate comenzi cu "elm"
}

// Verificare valori ale elementelor din "mAr" dupa parcurgere
trace(mAr);          // 2,4,8
- Observati ca, fata de celelalte instructiuni repetitive, "for each ... in" doar preia si foloseste intr-o variabila (aici "elm") valoarea elementului curent parcurs din Array (aici "mAr"), dar nu influenteaza elementele din matrice. Dupa cum se vede la verificarea cu "trace(mAr)", valorile din Array sunt neschimbate.

2. Array multi-dimensional

Un Array poate contine ca element un alt Array. In acest caz avem de-a face cu o matrice multi-dimensionala.
Sa luam un exemplu practic :

// Se creaza un Array cu 3 elemente (al treile fiind tot un Array)
var mAr:Array = ['tutoriale', 'marplo.net', [88, 'flash']];

// Verificare elemente totale din 'mAr', si al treilea
trace(mAr);          // tutoriale,marplo.net,88,flash
trace(mAr[2]);       // 88,flash
- Al treilea element ([88, 'flash']) fiind un Array in cel principal, se mai numeste si "array imbricat".

Accesare elemente din Array-ul imbricat

Pentru a accesa un element din matricea imbricata se foloseste urmatoarea formula:
                numeAr[i1][i2]
- Unde, "i1" este indicile de ordine a matricei imbricate in Array-ul principal, iar "i2" este indicele elementului din matricea interna.
Mai usor de inteles din urmatorul exemplu:
// Se creaza un Array cu 3 elemente (al treile fiind tot un Array)
var mAr:Array = ['tutoriale', 'marplo.net', [88, 'flash']];

// Se adauga intr-o variabila al doilea element din Array-ul imbricat
var test:* = mAr[2][1];

trace(test);          // Verificare valoare lui "test" (flash)

3. Array asociativ

Un Array asociativ este un Array in care indicii elementelor nu sunt numere intregi consecutive, ci siruri (cuvinte). Acestea nu mai sunt create automat, in ordine de catre program, ci trebuie definiti (asociati) special pentru fiecare element.
Sintaxa generala este:

- Unde "numeAr" este numele matricei.
- 'key1', 'key2' sunt indicii (cheile) asociate fiecarui element (pot fi scrisi si intre ghilimele duble, iar daca sunt numere, nu mai se adauga ghilimele).
- "val1", "val2" sunt valorile elementelor respective (pot fi: siruri, numere, variabile, expresii sau alt Array).
- Se pot adauga oricate elemente in Array, cu formula numeAr['key'] = valoare;

• Accesarea elementelor dintr-un Array asociativ se face la fel ca la cel cu indexi numere consecutive (denumit si "secvential"), cu sintaxa: numeAr['key']
• Acest tip de Array (asociativ) este de fapt si Obiect, deoarece valorile elementelor din el pot fi accesate si folosind formula: "numeAr.key", aici "key" fiind folosita ca o proprietate.
Iata un exemplu in care sunt aplicate ambele metode de accesare:
// Array asociativ cu 3 elemente
var mAr:Array = new Array();
 mAr['site'] = 'marplo.net';
 mAr['curs'] = 'Adobe Flash';
 mAr['tutoriale'] = 'JavaScript';

// Apelare cu metoda tip Array a primului element
trace(mAr['site']);         // marplo.net

// Apelarea altui element, cu metoda tip Obiect
trace(mAr.curs);           // Adobe Flash

Daca se aplica "trace(array_asociativ)", fara vreo cheie, nu va afisa nimic.

4. Parcurgere Array asociativ

Un Array asociativ se parcurge cu instructiunile "for ... in" sau "for each ... in".
Iata un exemplu pentru fiecare.

- Cu for ... in

// Array asociativ cu 3 elemente
var mAr:Array = new Array();
 mAr['site'] = 'marplo.net';
 mAr['curs'] = 'Adobe Flash';
 mAr['tutoriale'] = 'JavaScript';

// Se parcurge matricea "mAr" cu "for ... in"
for(var key:String in mAr)
{
  // Se afiseaza in Output Cheia si valoarea fiecarui element parcurs
  trace('Cheie='+ key+ ' - valoare='+ mAr[key]);

  // Pot fi executate orice comenzi si operati cu "key" si "mAr[key]"
}
- "key" e o variabila in care programul retine cheia (indexul) elementului curent parcurs (poate fi orice nume de variabila) din Array-ul "mAr".
In Output afiseaza:
Cheie=site - valoare=marplo.net
Cheie=tutoriale - valoare=JavaScript
Cheie=curs - valoare=Adobe Flash

- Cu for each... in

// Array asociativ cu 3 elemente
var mAr:Array = new Array();
 mAr['site'] = 'marplo.net';
 mAr['curs'] = 'Adobe Flash';
 mAr['tutoriale'] = 'JavaScript';

// Se parcurge matricea "mAr" cu "for each ... in"
for each(var elm in mAr)
{
  // Se afiseaza in Output valoarea fiecarui element parcurs
  trace('valE - '+ elm);

  // Pot fi executate orice comenzi si operati cu "elm"
}
- Observati diferenta fata de "for ... in". Cu "for each ... in" nu se obtine cheia elementului; variabila declarata intre paranteze (aici "elm") stocheaza insusi elementul parcurs.
In Output afiseaza:
valE - Adobe Flash
valE - marplo.net
valE - JavaScript

- Fisiere FLA cu exemplele din aceasta lectie pot fi descarcate de la:
  1. Array multi-dimensional
  2. Array asociativ
  3. Parcurgere Array asociativ

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce tag HTML5 este indicat sa contina meniul cu link-uri de navigare in site?
<section> <nav> <article>
<nav><ul>
 <li><a href="http://coursesweb.net/css/" title="CSS Course">CSS Course</a></li>
 <li><a href="http://www.marplo.net/jocuri/" title="Flash Games">Flash Games</a></li>
</ul></nav>
Ce proprietate CSS muta elementrul in dreapta sau stanga de la locul unde e?
text-align clear float
.some_class {
  width: 30%;
  float: left;
}
Clic pe metoda obiectului Math care rotunjeste numarul x descrescator la cel mai apropiat intreg.
Math.ceil(x) Math.abs(x) Math.floor(x)
var num = 12.34567;
num = Math.floor(num);
alert(num);       // 12
Indicati functia PHP care returneaza numarul de caractere dintr-un sir.
mb_strlen() count() stristr()
$str = "sir cu caractere utf-8 åèö";
$nrchr = mb_strlen($str);
echo $nrchr;        // 29
Clic pe raspunsul potrivit la intrebarea: "When it happened?".
On the 7th of July 1996 It is a quarter to 5. Nice weather.
When it happened? On the 8th of August 2001.
- Cand s-a intamplat? Pe 8 August 2001.
Indicati raspunsul potrivit la intrebarea: "¿Cuando sucedió?".
Hace buen tiempo. En el 8 de Agosto de 2001 Son las tres menos cuarto.
¿Cuando sucedió? En el 8 de Agosto de 2001.
- Cand s-a intamplat? Pe 8 August 2001.
Array - Avansati

Last accessed pages

  1. Poezii pentru copii, in engleza (41159)
  2. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (277214)
  3. Coduri pt culori (73452)
  4. Creare link-uri (20396)
  5. Verificare si Validare caractere din formular (1339)

Popular pages this month

  1. Curs HTML gratuit Tutoriale HTML5 (754)
  2. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (712)
  3. Coduri pt culori (571)
  4. Creare si editare pagini HTML (255)
  5. Formatare text in pagina html (231)