Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
eventratie

DVR clona

Server facut pe componente

Intrebare instagram
 SSD in pod ?

Recomandare ace masina cusut elec...

Cum calculez rata de profitabilit...

Panza circular unghiular potrivit...
 Norvegienii au testat autonomia a...

Or exista oameni care sa se jertf...

caldura uniforma sau e normal

Zgomot extrem de ciudat in centrala
 Cartela SIM Digi in telefon cumpa...

Receptie SMS de la numere scurte

Macheta A380 cu lumini de navigare

Cum funcționeaza poprirea?
 

Flem - un ultimu tutorial de la mine-

- - - - -
  • Please log in to reply
No replies to this topic

#1
Sebastian

Sebastian

    Active Member

  • Grup: Members
  • Posts: 1,182
  • Înscris: 26.11.2001
FLEM este abrevierea de la FLash Event Model.
Ce face el ?
Va permite structurarea mult mai organizata a comenzilor as si in acelasi timp renuntarea la interceptarea evenimentelor pt un obiect in orice moment !
De ex:Inainte ,cand nu foloseam FLEM, si as fi vrut sa fac un obiect(movieclip) sa testeze daca s-a apasat tasta mouse-ului in timp ce cursorul se afla deasupra lui, ii atribuiam in mod direct acest cod:
onClipEvent(mouseDown){
if(this.hitTest(_root._xmouse,_root._ymouse)){
trace("Click")
}}

Acum, cum as face acelasi lucru folosind FLEM...
Trebui deschis fisierul template pe care il luati din arhiva flem.zip
.Se numeste FLEMBasics.fla.Puteti ,insa, sa creati dvs
fla-ul introducand mc-ul ce se gaseste in template(cel ce asculta ,practic, evenimentele) si sa urmati pasii de mai jos.
Pe frame-ul pe care se afla mc-ul cu pricina atasez acest cod:


/*acest cod nu face nimic altceva decat sa includa codul ce se afla in fiserul flem.as(codul ce permite aceasta tehnica)*/

#include "flem.as"
/*acum incepe ,practic, problema pe care ne-am propus-o.
Pana acum am facut o simpla rutina de activare a tehnicii pe care
v-o prezint.
Se presupune ca  numele instantei mc-ului pe care vreti sa il folositi este 'mc',*/

/*codul acesta face ca mc-ul nostru sa astepte un eveniment al mouse-ului(onmousedown,onmouseup sau onmousemove).In cazul onmousemove trebuie ca din codul inclus pe mc-ul pe care l-ati luat din template sa eliminati "//".Asta pt ca in mod implicit, interceptarea miscarii mouse-ului este deactivata.
Acest lucru a fost decis de cel ce a produs tehnica pt ca metoda sa nu consume in mod inutil prea multe resurse !*/

Mouse.addFLEMListener(_root.mc)
/*Acum adaugam  codul pe care il aveam inainte sub onClipEvent(mouseDown).Se face in felul urmator.*/
_root.mc.onmousedown=function(){
if(this.hitTest(_root._xmouse,_root._ymouse)){
trace("click")}
}



Cam asta ar fi !
Acum ceva practic.Ce veti vedea mai jos este un exemplu de utilizare.
Sunt mai multe instante ale aceluiasi mc(o bila) ce nu au nume.
Nu au nici cod,nimic.
Intr-un singur frame am scris tot.Cum am gandit ?
Am facut ca fiecarui mc din _root sa ii fie atribuit un cod de interceptare al clickului pe el.
Asta am facut prin a folosi for (i in _root).Acest lucru trece printr-un ciclu prin toate obiectele aflate in root.Testam daca acestea erau movieclip si daca da le atribuiam codul.
Testarea tipului se face prin functia typeOf().
Cand acest lucru se intampla(apsarea tastei mouse-ului), se executa o functie ce genereaza valori pt proprietatiile _alpha,_x,_y,_xscale_,_yscale si se executa o functie 'TRAN'  de 5 ori.Aceasta functie modifica cu animatie o proprietate a unui mc.
Functia reuseste sa modifice cu animatie avand un interceptor de tipul onClipEvent(enterFrame) care a fost definit asa:

function tran(target,prop,val){
.
.
.
MovieClip.addFLEMListener(this)
this.onEnterFrame=function(){
//aici este codul de modificare prin animatie pas cu pas.
}
}


Dar cel mai bine uitati-va mai jos sa vedeti rezultatul:
http://www.snm.ro/work/cool.html
Apoi, luati sursa de aici:
http://www.snm.ro/work/flem.rar
Si uitati-va peste sursa.Este comentata !
Pt fisierul original si pt mai multe informatii despre aceasta metoda,vizitati:
http://chattyfig.figleaf.com/flem

                                                                     Tomita Dan

Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate