Archive

Posts Tagged ‘actionscript 3.0’

Adobe Developer Day

May 19th, 2009

9:20: Am ajuns cam devreme. Sala cam întunecată pentru gustul meu, prea întunecată chiar și pentru f/1.4 cu ISO 400.

Adobe Developer Day

9:45: A început să se mai strangă lumea. Totuși, sala mai are până să fie plină. La 10 teoretic începe evenimentul.

Se mai strange lumea

10:15: Introducere scurtă a lui Alexandru Costin, director Adobe România. Destul de scurtă încât să nu fie plictisitoare.

Alexandru Costin

10:30: Ben Forta despre Adobe și RIA. Exemple interesante de nume mari care au folosit produse Adobe, în special Flex și Flash, dar nimic surprinzător. Se întrevede Flash/Flex pe o serie largă de device-uri, inclusiv televizoare. Asta o să fie foarte interesant.

Ben Forta

11:10: Digby Horner despre “making of”-ul Adobe România. Non-tehnic. Plictisitor. Pare s-o mai dreagă pe final povestind despre niște proiecte concrete. N-am poză cu el.

11:40: coffe break

Coffe Break

12:00: Cornel Creanga despre Flex for Enterprise, AMF3, Flex+Java=LOVE și altele. Destul de hands-on și suficient de interesant. Niște chestii pe care Cornel le numește “flashlets”, adica un gen de “portlets” de Flash. Faza destul de logică, asemănătoare cu plugin-urile de Wordpress.. Nu văd ce mare chestie..

Cornel Creanga

în jur de 13:00: masa de prânz

14:00-14:30: discuție liberă cu echipa care lucrează la Air. Una-alta, fiecare ce-avea pe suflet.

14:30-15:30: Mihai Pricope despre Flex 4 SDK si Flash Catalyst. Mană Dumnezeiască pentru designerii care nu vor sa mai vorbească cu programatorii și invers.

Mihai Pricope

evilpenguin Uncategorized, programare , ,

Flex Builder devine Flash Builder

May 18th, 2009

Zvonurile că Flex Builder își va schimba numele au fost oficial confirmate. Lee Brimelow, platform evangelist la Adobe comentează acest lucru. În același timp el încearcă sa calmeze spiritele, pentru că majoritatea developerilor care s-au axat pe Flex în ultima perioadă sunt, aparent, îngrijorați de dispariția acestui produs.

De fapt, tot ce se întâmplă este că Flex Builder devine Flash Builder. Nimic mai mult, nimic mai grav. Lumea Flex-ului nu se va sfârși. Nevoia pentru acest rebranding este, din punctul meu de vedere, evidentă. Flex Builder este un IDE cu multiple utilități, nu numai de a crea proiecte Flex. Flex va rămâne ce era la început, un framework open-source, complex și fiabil, bazat pe Actionscript 3. În plus, mi se pare benefică separația între proiectul open-source, framework-ul în sine, și IDE-ul pentru care trebuie să plătești licență.

Ce nu pot eu să înțeleg este de ce Flash-ul rămâne ciuntit de capabilitățile unui IDE serios pentru code development, iar Adobe alege să rămână pe piață cu un produs separat. Sau dacă înțeleg, atunci nu sunt de acord cu mișcarea asta de marketing. Mi se pare că se întinde coarda un pic cam mult ți se forțează mâna într-un mod evident să cumperi mai multe produse. Eu n-o să mă despart de Flash, pentru că dacă vreau să desenez ceva, vreau să apuc un tool și să fac un cerc, un dreptunghi sau un gradient fill. Dar dacă prin Flex s-a demonstrat că Adobe stie ce-i aia un IDE pentru cod, de ce n-au putut să includă câteva din funcționalitățile respective în Flash?

evilpenguin programare , ,

MouseEvent.DOUBLE_CLICK

February 12th, 2009

Situație stupidă: player-ul trimite primul event de MouseEvent.CLICK, deabia după aia al doilea event de MouseEvent.CLICK se transformă în MouseEvent.DOUBLE_CLICK. Asta înseamnă că dacă am o function1 pe CLICK și function2 pe DOUBLE_CLICK, la orice dublu-click o să mi se declanșeze function1, după care function2. Am căutat pe tot netul în sus și în jos și nu văd nici o rezolvare decât să nu mai tratez MouseEvent.DOUBLE_CLICK, ci să o ard cu timere și/sau semafoare și doar cu eventuri de CLICK..

evilpenguin Uncategorized , , ,

arguments.caller

August 7th, 2008

În Actionscript 3, proprietatea arguments.caller, cu care ne obișnuise Actionscript 2, a dispărut ca prin minune. În concluzie, dacă vrei să afli ce funcție ți-a apelat funcția în care scrii o anumită bucată de cod, trebuie să trimiți ca parametru și funcția apelantă. Din păcate, dacă extinzi o clasă și vrei să definești o funcție override, ești obligat să păstrezi antetul funcției identic cu antetul funcției din superclasă. În concluzie, n-ai cum să adaugi un alt parametru la cei deja existenți.

Ca să rezolvi problema, singura modalitate viabilă pare să fie să-ti arunci singur o eroare aleatoare, pe care să o interceptezi. Apoi poți să faci stackTrace ca să afli toate funcțiile care rulează în momentul respectiv. Dacă ai nevoie de ceva care să-ți mimeze doar arguments.caller, poți folosi o bucată de cod ca cea de mai jos:

1
2
3
4
5
6
try { throw new Error() }
catch (e:Error) {
    var stackTrace:String = e.getStackTrace();
    var caller:String = String(stackTrace.split('\n')[2]).substring(String(stackTrace.split('\n')[2]).lastIndexOf(':')+1);
    }
trace(caller);

Rezultatul trace-ului va include și parantezele, pe lângă numele funcției, asemănător cu următorul exemplu:

1
execQueuedCmds()

evilpenguin Uncategorized ,

Parametri opționali

July 18th, 2008

Să zicem că avem o funcție, care trebuie apelată la un event, orice event. Funcția va fi definită la modul:

1
2
3
protected function doSomething(evt: Event):void {
// instrucțiuni
}

Dar ce facem dacă vrem să apelăm funcția și în alte circumstanțe? Poate la un moment dat e nevoie să o apelăm și altfel decât cu trigger un eveniment, ci mai degrabă la modul

1
doSomething();

Evident, vom primi o eroare gen:

1
1136: Incorrect number of arguments.  Expected 1.

Not good. O rezolvare pe care am folosit-o în grabă odată a fost pe principiul “firai a dracu, vrei parametru, na parametru”:

1
2
var nullEvent:Event = null;
doSomething(nullEvent);

Bye-bye eroare, dar ne-am procopsit cu o variabilă în plus. Există totuși și o modalitate de a face treaba cum trebuie.

Un parametru inițializat, devine un parametru opțional. Dacă rescriem, deci, funcția noastră la modul:

1
2
3
protected function doSomething(evt: Event = null):void {
// instrucțiuni
}

putem apela foarte liniștiți și cu, și fără parametru. Dacă funcția este apelată fără parametru, atunci valoare lui, evident, va fi cea de inițializare. Adică null în cazul de față.

(valabil doar in Actionscript 3)

evilpenguin programare ,