Tablice są bardzo przydatnym typem danych. Przypominają uporządkowaną listę elementów i tak jak w liście elementy w tablicy są numerowane, przy czym pierwszy element tablicy ma indeks równy zeru. Dzięki indeksom możliwe jest lokalizowanie poszczególnych elementów tablicy.

Tworzenie tablicy

Tablicę w ActionScript możemy stworzyć na dwa sposoby:

  • Za pomocą konstruktora Array:
        var pustaTablica:Array = new Array();
        var tablicaZElementami:Array = new Array("element 1", "element 2");
    
  • Za pomocą literału tablicowego:
        var pustaTablica:Array = ["element 1", "element 2"];
        var tablicaZElementami:Array = [];
    

Używając konstruktora Array możemy przekazać również pojedynczą liczbę, która określa wielkość tablicy np.

    var tablica5Elementow:Array = new Array(5); //powstanie tablica z pięcioma komórkami

Jednak takie zastosowanie nie ma praktycznego zastosowania, gdyż rozmiar tablicy w ActionScript zmienia się dynamicznie. Tym samym, jeżeli do tablicy 5-cio elementowej dodamy szósty element, to rozmiar tablicy zostanie odpowiednio zmodyfikowany.

Pobieranie elementu tablicy

Element tablicy w ActionScript pobieramy za pomocą operatoru dostępu do tablicy([]), do którego przekazujemy indeks elementu:

    var tablica:Array = [1,2,3];
    trace(tablica[0]) // wyświetli 1

Sprawdzanie wielkości tablicy

Aby sprawdzić ile aktualnie elementów zawiera tablica, możemy skorzystać z właściwości length:

    var tablica:Array = [1,2,3];
    trace(tablica.length) // wyświetli 3

Dodawanie i usuwanie elementów z tablicy

Elementy do tablicy można dodawać w następujący sposób:

    var tablica:Array = [1,2,3];
    tablica[3] = 4; //dodajemy element do tablicy pod indeksem 3
    trace(tablica); // wyświetli 1,2,3,4

Taka metoda jest dobra dla pojedynczych elementów i gdy nasza tablica nie jest duża. Na dłuższą metę może to być jednak uciążliwe. Na szczęście obiekt Array oferuje kilka metod ułatwiających pracę z elementami tablicy.

Metoda concat()

Metoda ta pozwala na łączenie 2 tablic ze sobą, np.

    var tablica1:Array = [1,2,3];
    var tablica2:Array = [4,5,6];
    var tablica3:Array = tablica1.concat(tablica2);
    trace(tablica3); // wyświetli 1,2,3,4,5,6

Metoda ta zwraca nową tablicę, która powstanie z połączenia 2 tablic. Tablica tablica1 i tablica2 pozostaną bez zmian. Do metody concat możesz przekzać więcej elementów. Zostaną one potraktowane jako kolejne elementy tablicy i dołączone na jej końcu, np.

Tablice są bardzo przydatnym typem danych. Przypominają uporządkowaną listę elementów i tak jak w liście elementy w tablicy są numerowane, przy czym pierwszy element tablicy ma indeks równy zeru. Dzięki indeksom możliwe jest lokalizowanie poszczególnych elementów tablicy.

Tworzenie tablicy

Tablicę w ActionScript możemy stworzyć na dwa sposoby:

  • Za pomocą konstruktora Array:
        var pustaTablica:Array = new Array();
        var tablicaZElementami:Array = new Array("element 1", "element 2");
    
  • Za pomocą literału tablicowego:
        var pustaTablica:Array = ["element 1", "element 2"];
        var tablicaZElementami:Array = [];
    

Używając konstruktora Array możemy przekazać również pojedynczą liczbę, która określa wielkość tablicy np.

    var tablica5Elementow:Array = new Array(5); //powstanie tablica z pięcioma komórkami

Jednak takie zastosowanie nie ma praktycznego zastosowania, gdyż rozmiar tablicy w ActionScript zmienia się dynamicznie. Tym samym, jeżeli do tablicy 5-cio elementowej dodamy szósty element, to rozmiar tablicy zostanie odpowiednio zmodyfikowany.

Pobieranie elementu tablicy

Element tablicy w ActionScript pobieramy za pomocą operatoru dostępu do tablicy([]), do którego przekazujemy indeks elementu:

    var tablica:Array = [1,2,3];
    trace(tablica[0]) // wyświetli 1

Sprawdzanie wielkości tablicy

Aby sprawdzić ile aktualnie elementów zawiera tablica, możemy skorzystać z właściwości length:

    var tablica:Array = [1,2,3];
    trace(tablica.length) // wyświetli 3

Dodawanie i usuwanie elementów z tablicy

Elementy do tablicy można dodawać w następujący sposób:

    var tablica:Array = [1,2,3];
    tablica[3] = 4; //dodajemy element do tablicy pod indeksem 3
    trace(tablica); // wyświetli 1,2,3,4

Taka metoda jest dobra dla pojedynczych elementów i gdy nasza tablica nie jest duża. Na dłuższą metę może to być jednak uciążliwe. Na szczęście obiekt Array oferuje kilka metod ułatwiających pracę z elementami tablicy.

Metoda concat()

Metoda ta pozwala na łączenie 2 tablic ze sobą, np.

    var tablica1:Array = [1,2,3];
    var tablica2:Array = [4,5,6];
    var tablica3:Array = tablica1.concat(tablica2, 7, 8);
    trace(tablica3); // wyświetli 1,2,3,4,5,6,7,8

Operacje stosu – push() i pop()

Stos to struktura danych, która działa zgodnie z zasadą: pierwszy wchodzi, ostatni wychodzi (FILO – First in, Last out). Oznacza to, że pierwszy dodany do struktury element zostanie w niej do momentu, aż wszystkie pozostałe zostaną z niej usunięte. ActionScript oferuje 2 metody, które działają na tablicy tak jak na stosie: push() i pop().

Metoda push pozwala na dodawanie elementu na końcu tablicy. Natomiast metoda pop usuwa element z końca tablicy. Zobaczmy jak to działa w praktyce:

    var mojaTablica:Array = new Array();
    mojaTablica.push(1);
    mojaTablica.push(2);
    mojaTablica.push(3);
    trace(mojaTablica); // wyświetli 1,2,3

    var mojaLiczba:Number = Number(mojaTablica.pop()); // pobieramy ostatni element tablicy, rzutujemy na Number
    trace(mojaLiczba); // wyświetli 3

    trace(mojaTablica); // wyświetli 1,2

    var mojaLiczba1:Number = Number(mojaTablica.pop());
    trace(mojaLiczba1); // wyświetli 2

    trace(mojaTablica); // wyświetli 1

Aby zaoszczędzić czas przy dodawaniu elementu, do metody push możesz przekazać większą ilość elementów np.

    var mojaTablica:Array = new Array();
    mojaTablica.push(1,2,3);
    trace(mojaTablica); // wyświetli 1,2,3

Operacje kolejki – shift() i unshift()

Tablice w ActionScript mogą się zachowywać również jak inna, podobna do stosu, struktura danych – kolejka. Kolejka pracuje zgodnie z zasadą: pierwszy wchodzi, pierwszy wychodzi (FIFO – First in, First out), czyli jak (zazwyczaj :) typowa kolejka do kasy. Do operowania na tablicy jak na kolejce służą metody shift i unshift. Motoda shift pobiera element z początku tablicy, a metoda unshift dodaje element na początku tablicy.


    var mojaTablica:Array = new Array();
    mojaTablica.push(1);
    mojaTablica.push(2);
    mojaTablica.push(3);

    trace(mojaTablica); // wyświetli 1,2,3

    var mojaLiczba:Number = Number(mojaTablica.shift());
    trace(mojaLiczba); // wyświetli 1
    trace(mojaTablica); // wyświetli 2,3

    mojaTablica.unshift(1);
    trace(mojaTablica); // wyświetli 1,2,3

Metoda splice()

A co w przypadku, gdy nowe elementy tablicy chcemy wstawić w środku istniejącej tablicy? Do tego przyda nam się metoda splice. Metoda ta przyjmuje 2 obowiązkowe parametry:

  1. Indeks, od którego rozpoczynamy wstawianie lub usuwanie,
  2. Ilość elementów, które chcemy usunąć

Jako dodatkowe parametry możemy przekazać elementy do wstawienia do tablicy. Jeżeli zdecydujemy się na usunięcie jakiś elementów za pomocą metody splice, to zwróci nam je ona jako wynik wykonania metody.


    var mojaTablica:Array = new Array("a", "b", "c", "z", "e", "f");
    var nowaTablica:Array = mojaTablica.splice(3,1,"d");

   trace(mojaTablica); // wyświetli a,b,c,d,e,f
   trace(nowaTablica); // wyświetli z

Praca z podzbiorem tablicy – metoda slice()

Metoda slice służy do pobierania podzbioru elementów z istniejącej tablicy. Przyjmuje ona 2 parametry: indeks początkowy oraz indeks końcowy (nie jest wliczany) elementów, które chcemy pobrać.


    var mojaTablica:Array = new Array("a", "b", "c", "d", "e", "f");
    var nowaTablica:Array = mojaTablica.slice(1,3);
    trace(nowaTablica); // wyświetli b,c

Metoda slice może przyjmować też parametry ujemne. Wtedy zliczanie elementów rozpoczyna się od końca tablicy.


    var mojaTablica:Array = new Array("a", "b", "c", "d", "e", "f");
    var nowaTablica:Array = mojaTablica.slice(-2,-1);
    trace(nowaTablica); // wyświetli f