Cand e creat un Symbol sau se include cu Import ceva (imagine, sunet) acesta e adaugat automat si in panoul Library. Pentru a lucra in ActionScript cu obiectele din Library, acestea trebuie asociate cu o clasa (dupa cum e prezentat in lectia: Lucru in ActionScript 3 cu obiecte din Library).
Cand obiectul adaugat in Library este tras (cu mouse-ul) in Scena, de fapt sunt create in scena instante ale acelui obiect. Daca la acesta se asociaza o clasa care apoi este editata prin adaugarea unor instructiuni, acestea se vor aplica tuturor instantelor acelui obiect.
- De exemplu, daca dorim ca toate instantele unui obiect din Library sa-si schimbe dimensiunile cand mouse-ul este deasupra lor, ar trebui dat la fiecare cate un nume de instanta, apoi, aplicata fiecaruia o functie cu instructiunile dorite. Dar mai simplu ar fi editaea clasei obiectului parinte al lor (stocat in Library).
Iata, printr-un exemplu, cum se face acest lucru. Se va crea o stea ca Symbol Movie Clip, iar prin editarea clasei asociate acestui Symbol, orice instanta a lui va avea efectul de schimbare a culorii si marie a dimensiunilor cand mouse-ul e deasupra ei. Dupa cum se poate testa in prezentarea urmatoare.
package { // Importare clase a caror functii sunt folosite in aceasta import flash.display.MovieClip; import flash.events.MouseEvent; import flash.geom.ColorTransform; public class Stea extends MovieClip { // Proprietate privata pentru modificarea culorii private var changeColor:ColorTransform = new ColorTransform(); // Variabile in care sunt retinute dimensiunile originale ale obiectului private var orgScaleX:Number; private var orgScaleY:Number; // Metoda constructor public function Stea() { // Preia dimensiunile originale orgScaleX = this.scaleX; orgScaleY = this.scaleY; // Inregistrare detectare evenimente de mouse: ROLL_OVER si ROLL_OUT // ROLL_OVER este similar cu MOUSE_OVER, iar ROLL_OUT cu MOUSE_OUT this.addEventListener(MouseEvent.ROLL_OVER, grow); this.addEventListener(MouseEvent.ROLL_OUT, shrink); } private function grow(event:MouseEvent):void { // Mareste dimensiunile obiectului cu 50% this.scaleX *= 1.5; this.scaleY *= 1.5; // Seteaza culoarea cu plu de albastru si o aplica obiectului curent changeColor.blueOffset += 215; this.transform.colorTransform = changeColor; } private function shrink(event:MouseEvent):void { // Readuce obiectul la dimensiunile initiale this.scaleX = orgScaleX; this.scaleY = orgScaleY; // Seteaza culoara, reducand albastru adaugat la functia 'grow()' si o aplica obiectului curent changeColor.blueOffset -= 215; this.transform.colorTransform = changeColor; } } }- In afara de metoda constructor, care trebuie sa aibe atribut "public", celelalte metode si proprietati sunt definite ca private deoarece sunt folosite doar in corpul clasei.
Daca se doreste ca si alt obiect din Library (instantele lui) sa aibe acelasi efect ca cel creat in clasa Stea, se asociaza si el cu o clasa iar la optiunea Base class se adauga Stea. Astfel nu mai e necesara alta editare.
<select name="a_name"> <option value="val1">Optiune 1</option> <option value="val2" selected="selected">Optiune 2</option> </select>
#id { background: linear-gradient(top left, #1f1, #fff, #11f); }
var arr = [1, "CoursesWeb.net", "MarPlo.net"]; alert(arr[2]);
header("Location: http://coursesweb.net/"); exit;
The garden is a place with flowers. - Gradina este un loc cu flori.
El jardín es un lugar de flores. - Gradina e un loc cu flori.