E-learn.ro
Panou utilizatori
Utilizator Parola
Creeaza cont nou    Recupereaza parola
Login
Newsletter
Introdu adresa ta de email
Inscrie-te
Inchide panoul de utilizatori
Add to Google

Tutoriale Adobe Flash

Descarca toolbar

Toolbar E-learn.ro Facebook Twitter

GRAFICA 2D  /  Adobe Flash  /  ActionScript (14)

In ce se transforma removeMovieClip() in AS3

20.05.2009
In ce se transforma removeMovieClip() in AS3

In ActionScript 2, movie clipurile se afla in stransa legatura cu timeline-ul din Flash. Daca au fost create intr-un timeline, acela va fi singurul timeline in care vor putea exista pana vor fi indepartate la final, fie de catre timeline, fie de catre codul Action Script, prin apelarea metodei removeMovieClip().

Total vizualizari: 4545 4545 afisari   |   Comentarii  1   |   Rating   |   (3 voturi)   |   Timp necesar: 15 min 15 min   |   Nivel de cunostiinte necesar: Mediu  Mediu

Sursa:  Kirupa.com  
Autor:  Senocular
Adauga la tutoriale favorit Adauga la tutoriale favorite
Pagina:
1
comenteaza printeaza

In ActionScript 2, movie clipurile se afla in stransa legatura cu timeline-ul din Flash. Daca au fost create intr-un timeline, acela va fi singurul timeline in care vor putea exista pana vor fi indepartate la final, fie de catre timeline (pe baza informatiilor din frame-uri), fie de catre codul Action Script, prin apelarea metodei removeMovieClip().

In AS2, referintele la movie clip-uri sunt referinte soft ce utilizeaza o cale pentru a conecta o instanta a unui movie clip cu timeline-ul parinte. In cazul in care calea catre un movie clip nu mai este valabila (fie a fost sters din timeline, fie nu exista la momentul respectiv), variabila care se refera la el nu va returna nici o valoare. Ca sa intelegi mai bine aceste notiuni, analizeaza urmatorul exemplu:

// ActionScript 2 
var mcRef:MovieClip; 
trace(mcRef); // undefined 
trace(typeof mcRef); // undefined 
  
mcRef = attachMovie("mySymbol", "mySymbol", 1); 
trace(mcRef); // _level0.mySymbol 
trace(typeof mcRef); // movieclip 
  
mcRef.removeMovieClip(); 
trace(mcRef); // [nu afiseaza nimic] 
trace(typeof mcRef); // movieclip 
  
attachMovie("mySymbol", "mySymbol", 2); 
trace(mcRef); // _level0.mySymbol 
trace(typeof mcRef); // movieclip

Dupa ce movie clip-ul a fost indepartat de pe ecran, variabila mcRef care se refera la acesta continua sa fie de tipul movieclip. Cand este creat un nou movie clip, la o adancime diferita, dar cu acelasi nume (deci aceeasi cale) ca si originalul, mcRef pointeaza catre acel nou clip video, deoarece a gasit o instanta valida pentru calea respectiva.

ActionScript 3 este mai putin criptic. Obiectele nu sunt atat de dependente de timeline-ul lor, putand fii mutate dintr-un timeline in altul prin apelarea metodelor addChild, removeChild, si alte functii similare. Sunt create acum asemeni tuturor celorlalte obiecte, utilizand cuvantul cheie new (in loc de attachMovie). Astfel, variabilele care fac referire la instantele obiectelor afisate functioneaza la fel cu celelalte, insemnand ca daca doresti sa scapi de instanta unui obiect afisabil din memorie, trebuie sa te asiguri ca nu exista referinte catre aceasta.

Cu ce a fost inlocuita functia removeMovieClip in AS3?

De exemplu, poti indeparta o instanta a unui movie clip (sau a unui alt obiect afisabil) destul de usor utilizand removeChild. Daca te afli in cadrul instantei, ar trebui sa utilizezi:

parent.removeChild(this);

Oricum, aceasta functie nu va indeparta instanta din memorie, ci doar de pe ecran , pentru a nu fi vazuta de catre utilizator. Daca doresti sa stergi un movie clip din memorie, trebuie sa te asiguri ca nu mai exista referinte la el. Daca variabila respectiva este o proprietate a unui clase, ea trebuie initializata cu null, altfel trebuie stearsa cu functia delete.

classPropertyMcRef = null; 
delete dynamicMcRef;

Ceea ce trebuie sa retii este ca, in AS3, un obiect nu se poate sterge singur, ci el poate fi indepartat doar de catre parintele, de obiectul care l-a creat sau de timeline-ul care il contine.

Cu alte cuvinte, un obiect nu este responsabil pentru existenta sa proprie, ci sarcina de a verifica daca el exista revine parintelui. In acest mod, un obiect ce creeaza o instanta a unui alt obiect va controla si referinta catre copilul sau. Astfel, referintele sunt pastrate in cadrul aceluiasi obiect-parinte, fara a fi raspandite si in alte instante, ceea ce ajuta cu atat mai mult daca un obiect-copil trebuie sters la un moment dat. Clasa respectiva poate pastra toate referintele, poate sterge o instanta de pe ecran daca este nevoie, si poate anula toate referintele pentru a indeparta obiectul din memorie.

Desigur, o alta varianta ar fi sa nu utilizezi referinte. Daca instantele movie clip-urilor de pe scena au nume unice, ele pot fi accesate prin proprietatea name. Astfel, poti obtine o referinta la un obiect daca apelezi getChildByName("numeInstanta"). Aceasta metoda simpla poate inlocui variabilele ce pastreaza referinte la obiecte. In acest mod, apelul removeChild(getChildByName("instanceName")) este suficient pentru a sterge un obiect de pe ecran si din memorie.

Pagina:
1
comenteaza printeaza
Alte tutoriale Adobe Flash:
Noteaza acest tutorial
Rating tutorial
 
(3 voturi)
Pentru a nota acest tutorial, trebuie sa fii logat!
COMENTARII (1) spune-ti parerea
emiliapausan , Miercuri, 02 Martie 2011, ora 22:10
#1

Multumec foarte mult pentru informatii (f. bine scrise si la obiect).
Sunt incepatoare in Flash, am citit cat am putut diferite tutoriale si am avut acum o suprinza placuta sa gsesc in limba romana tutoriale bine scrie.
Multumesc inca o data.

Puteti scrie ceva si despre clase, asa mai pe intelesul incepatorilor (ca si in secventa aceasta)?

Raporteaza acest comentariu ca injurios!
Posteaza un comentariu
Pentru a posta un comentariu, trebuie sa fii logat!
0 TOP UTILIZATORI* 0 0
Tutoriale scrise de claibornelara
claibornelara Rang utilizator claibornelara - Incepator
4440
Tutoriale scrise de mcuemica
mcuemica Rang utilizator mcuemica - Incepator
4335
Tutoriale scrise de ellarichards
ellarichards Rang utilizator ellarichards - Incepator
4300
Tutoriale scrise de emonclercheap
emonclercheap Rang utilizator emonclercheap - Incepator
4145
Tutoriale scrise de kheops
kheops Rang utilizator kheops - Mediu
4084
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
StyleSheet PHP MySQL Photoshop Dreamweaver Outlook Vista Python Ruby on Rails Verilog COREL DRAW HTML PSD SWF Excel Bridge AJAX XML Word Fotografie Lightroom JSON Java Swift 3D CSS XHTML Fireworks Gimp Action Script Powerpoint SEO Flash Sony Vegas Javascript Illustrator RoR
Promovare:
Daca faci parte din comunitatea E-learn.ro si doresti promovarea acesteia, poti accesa pagina de promovare.
Arhiva newsletter:
Daca ai ratat un numar mai vechi, sau vrei sa revezi care au fost noutatile E-learn.ro la un moment dat, poti accesa arhiva de newslettere.
  Copyright © 2008-2013 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software