AS3 Signals

Imparte ce ai cu toata lumea ... nu fi calic:)

AS3 Signals

Mesajde alexxcz » Sâm Ian 23, 2010 1:13 am

Tocmai am dat peste ceva ce mi se pare destul de util, tinand cont de propria experienta cu Event-urile proprii si cat m-am invartit in jurul cozii ca sa imi dau seama cum functioneaza acestea si cum sa le folosesc.

Ca sa nu scriu prea mult si sa fac un post plictisitor, cam asta e:

AS3 Signals, librarie, este o modalitate mai "usoara" de utilizare a evenimentelor dintr-un script. Pe langa sintaxa mai usoara si mai scurta mai e si faptul ca nu trebuie sa creezi cate o clasa de event de fiecare data cand ai nevoie de un Custom Event. In plus nu mai e nevoie sa extinzi EventDispatcher sau sa implementezi IEventDispatcher pentru fiecare clasa in care au loc evenimente.

Concept
~A Signal is essentially a mini-dispatcher specific to one event, with its own array of listeners.
~A Signal gives an event a concrete membership in a class.
~Listeners subscribe to real objects, not to string-based channels.
~Event string constants are no longer needed.
~Signals are inspired by C# events and signals/slots in Qt.


In fine, eu am aflat de pe PV3D.org , deoarece urmaresc blog-ul asta(si il recomand celor carora le place sa lucreze in Papervision3D dar si in alte librarii 3D) . John Lindquist, autorul blogului, a facut si un scurt tutorial/prezentare despre AS3 Signals. Mai multe detalii despre proiect gasiti pe GitHub.
“First, solve the problem. Then, write the code.”
(John Johnson)
Avatar utilizator
alexxcz
 
Mesaje: 620
Membru din: Lun Iul 21, 2008 9:12 pm
Localitate: Braila

Re: AS3 Signals

Mesajde c.horias3 » Sâm Ian 23, 2010 11:19 am

Mda, pe scurt e o cale mai usoara de a scrie lucrurile, si vad ca e insiparata din sitaxa de C#. Sincer nu o vad ca ceva foarte important, si ca ceva uimitor pt dezvoltarea noastra ca developeri. Acuma cine vrea sa inceapa sa foloseasca asta bine, cine nu, din nou foarte bine.
EU o sa raman la sintaxa default din AS 3.0, care mi se pare ca e destul de OK, pana acuma.
http://blog.flashdesign-store.com

If you Want to fly like a butterfly don't worry like a coconut
Avatar utilizator
c.horias3
Moderator
 
Mesaje: 616
Membru din: Vin Sep 12, 2008 3:39 pm
Localitate: Brasov|Romania

Re: AS3 Signals

Mesajde Barna Biro » Sâm Ian 23, 2010 3:42 pm

Thanks for sharing.

M-am uitat peste video de curiozitate... Not really impressed sincer si nici nu mi se pare o modalitate ok de comunicare. Nu vad de ce ar fi mai ok decat evenimentele custom sau orice alta implementare custom ( proprie ) pentru a comunica cu diferite obiecte. Intr-adevar, nu exinte clasa ta EventDispatcher, dar folosesti totusi un object Signal care cine mai stie ce implementeaza... deci nu castigi absolut nimica la faza asta.

Treaba cu "add", "remove" mi se pare destul de aiurea... Sigur sunt o gramada de oameni ( daca nu sunt deja, atunci sigur o sa fie ) care vad chestie asta ca fiind mai ok decat definirea de evenimente custom, dar sincer, din ce am vazut in video, nu e nici pe jumate la fel de ok.

Referitor la evenimente custom... Daca pur si simplu vrei un tip nou, nu trebuie sa faci nicio clasa noua de "eveniment custom"... vad multi oameni care traiesc cu conceptia asta ( gresita ). Daca pur si simplu vrei un evenimet de tipul "VasileSare", atunci faci un dispatch la un Event si pur si simplu ii schimbi tipul... exemplu:

Cod: Selectaţi tot
dispatchEvent(new Event("VasileSare"));

Nu-ti trebuie nicio clasa noua si nimica. Clasa noua pentru evenimente faci doar atunci cand vrei sa pasezi si ceva valori impreuna cu evenimentul tau. Nu am vazut un exemplu pe treaba asta in video-ul cu Signal ( e adv. ca nici nu am avut rabdare s-o vad pana la final ), dar oricum, mi se pare chiar mai incurcata treaba cu Signal decat cu Event-uri... Macar la Event-uri, cat de cat, stie omul la ce sa se astepte... dar la o clasa de genul Signal, nu stii cum functioneaza si ce limitari are ( asta in caz de nu e open-source si chiar poti sa vezi... ).

Oricum, sa spunem ca poate transmite si valori aditionale... nici atunci nu as vrea "sa ma leg" de o librarie de genu, care azi poate e, maine nu mai e... si daca maine nu mai e dar tu inca ai un proiect de facut / terminat, atunci sa vezi show... te obisnuiesti cu ceva total aiurea...

Te sfatuiesc ( and everyone else too ) sa studiezi mai bine clasa Event si sa intelegi cum functioneaza. Librariile de genul Signal chiar nu te ajuta cu absolut nimica ( desi, poate, momentan asta-i iluzia in care traiesti )... chiar dimpotriva, mai mult strica deoarece in loc sa "muncesti o problema", te pui sa folosesti librarii SF care poate functioneaza, poate nu ( si cine stie cum functioneaza )... Poate-s eu "o specie mai aparte" si-mi place sa si inteleg ce fac si mai ales sa inteleg cum functioneaza tool-ul / framework-ul cu care lucrez... nu ma omor dupa axiome si lucruri "out of the box" pe care sa le folosesc luni / ani dar fara sa am habar despre mecanismele care au loc chiar si la simplu yourVar.toString() ...

Just my 2 cents...
Thanks again for sharing, but I'd suggest that you try to get things done "the right way".

PS: Daca nu-ti plac evenimentele, citeste despre Observer Pattern, Command Pattern, Chain of responsibility Pattern s.a.m.d. Implementeaza propriul tau sistem / mecanism de notificare si gata...
Imagine
Avatar utilizator
Barna Biro
Administrator
 
Mesaje: 2037
Membru din: Vin Iul 25, 2008 1:06 am
Localitate: Lucerne, Switzerland


Înapoi la Imparte cu toata lumea

Cine este conectat

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat şi 2 vizitatori

cron