Archive for AS3

WMC 2010

// February 20th, 2010 // No Comments » // AS3, flash

Viename iš mano RSS srautų prieš gerą mėnesį radau straipsnį kad Arobe dalyvaus šioje parodoje ir ta proga dalino nemokamus pakvietimus. Reikėjo tiesiog parašyti laišką ir laukti gerų žinių. Gera žinia atėjo: gavau nemokamą kvietimą. Atvirai pasakysiu, tai man buvo pirmą tokio pobūdžio konferencija ( oficialiai kongresas ). Iš pradžių buvau pasimetęs. Nes ne kiekvieną dieną man tenka būti apsuptam “kostiumų armijos”. Bet žingsnis po žingsnio apsipratau.

Kadangi pagal visas progrnozes šie metai bus lūžis kai internetas pasidaris mobilus, nuo nešiojamų kompiuterų ir stacionarių parsikels į mobilesnius įrenginius, tai buvo tikrai daug naujienų iš gamintojų. Begalė smartphon’u su skirtingomis platformomis bei toms platformoms pritaikytų App Store’u. Netgi NVIDIA pristatė savo Tablet’ą. Visi bando atimti iš Apple gabalėlį pyrago. Smagu.

Smagiausią dalis man buvo ADOBE’s labai giriamas Flash Player 10.1 pristatymas, visos jo optimizavimo veikiant funkcijos.
Taip pat NVIDIA ir ADOBE bendradarbiavimas. Kurie labai akcentavo tegra technologija pagristus gaminius. Kurie pagal jų pateiktus duomenis, naudojant Flasho aplikacijas, kelias dešimt kartų  sumažina energijos naudojimą. Kas ypač aktualų šiame pasaulyje kuriame baterijos yra silpniausią progreso dalis.

Kas maloniausią man kaip AS3 programuotojui, Adobe stengiasi jog Flash grotuvas vienodai veiktų ant visų šiuo metu esamų platformų ir su visais įrenginiais kurie pasiekią internetą. Ant jų stendo buvo užrašas “One web, any device”. Aišku Apple nėra kol kas nėra suinteresuota ( o gal tik vienas žmogus?! ) palaikyti Flash grotuvą savo įrenginiuose.

Labai džiaugiuosi kad teko sudalyvauti Worl Mobile Congress 2010 renginyje. Barselona tikrai gražus miestas. Ačiū Adobe’i.

Pora įdomių video:
Wired žurnalas keliasi į skaimeninį pasaulį.
NVIDIA WMC2010 Adobe akimis

www.naminis.lt

// December 9th, 2008 // No Comments » // AS3, Portfolio, flash

Užsibaigiau dar vieną projektėlį – www.naminis.lt flash žaidimą.

Animaciją darė Vladislavas.
Naudotos technologijos: AS3.

Flash Player 10 galimybės

// October 19th, 2008 // No Comments » // AS3

Galima peržiūrėti čia.

Flash Player 10 jau čia

// October 15th, 2008 // No Comments » // AS3

Taigi ilgai laukėm ir sulaukėm. Flash Player 10 jau čia.

Labai nice filmukas.

Flash player parsisiuntimas.

Flash player sisteminė informacija.

Event’ai ( PART III )

// August 11th, 2008 // 2 Comments » // AS3

Garbage Collection

Pažodžiui išvertus skamba nelabai skaniai, bet kiek kaitinėjausi kiek bandžiausi, AS3 GC yra labai naudingas dalykas. Jį galima pavadinti Eventų prižiūrėtoju, tvarkytoju. Visų pirmą – su kuo ir kaip jis yra valgomas:

Jis yra įkomponuojamas į bet kurį addEventListener veiksmą:

eventTarget.addEventListener ( EventType.EVENT_NAME, eventResponse, useCapture : Boolean, priority : int, weakReference : Boolean );

useCapture – taip ir nesupratau normaliai kam jis reikalingas, jeigu jam duodi parametrą false, tai EventListener’is suveikia, jeigu duodi true – neveikia.

priority - eiliškumas, jeigu vienas objektas turi kelis to pačio tipo EventListener’ius:

stage.addEventListener ( MouseEvent.CLICK, onMouseClick_1, false, 99, true );
stage.addEventListener ( MouseEvent.CLICK, onMouseClick_2, false, 100, true );

juos galime surikiuoti. Default’inis eiliškumas yra toks kokia tvarka mes EventListener’ius užregistruojame, bet šiuo atveju ( 99, 100 ) onMouseClick_2 bus įvykdytas pirmas. Kuo didesnis priority skaičius tuo reikšmingesnis tas EventListener’is yra.

weakReference – šito irgi dalinai nepagavau. Priėjau išvados kad šis kintamasis sumažina atminties apkrovimą, ir padeda tuo atveju jeigu po EventLisener’io įvykdymo, EventListener’is nėra pašalinamas. Default’inė jo reikšmė yra false, kiek perėjau forumus, straipsnius tai visi norėtų kad ji kaip būtų true., ir rekomenduoja šitą reikšmę keisti į true.

Dirbtinis Event’as

Įsivaizduokite jūs kūriate žaidimą, kuriame jeigu žaidėjas surenka N taškų turi įvykti sekantys veiksmai:

  • Žaidėjas gauna papildomą gyvybę,
  • Turi sumirksėti fonas,
  • Turi pasigirsti tam tikras garsas
  • Žaidėjas gauna kokį nors bonus’ą

Žinoma visą tai galima būtų sugrūsti į vieną funkciją ir viskas atrodytų gerai, bet… Jeigu kiekvienas iš šių veiksmų turi atskrias funkcijas su visais skaičiavimais ir pan… Vėl gi galima sukurti fukciją kuri iškvietų visas funkcijas ir vėl atrodytų kad mes vis dėl to esame genijai :) . Bet yra paprstensi būdas – dirbtiniai event’ai.

Jie atrodo taip:

addEventListener ( "eventoPavadinimas", eventoFunkcija );

Mūsų atvejų reikėtų idėti kelis eventListener’ius:

myGame.addEventLisener ( "20000points", lvlUp, false, 0, true );
myGame.addEventLisener ( "20000points", playBackground, false, 0, true );
myGame.addEventLisener ( "20000points", playLvlUpSound, false, 0, true );
myGame.addEventLisener ( "20000points", giveRandomStuff, false, 0, true );

taigi visi jie suveiks tada kai bus pasiekta 20000 taškų ir kai bus iškviestas event’as 20000points. Kaip jis iškviečiamas? Šiuo, žaidimo atveju, turi vykti kažkokia tai funkciją kuri skaičiuoja taškus už vieną ar kitą žaidėjo padarytą veiksmą. Ir turės tikrinti aržaidėjas pasiekė tinkamą

private function countScore ( diff : int ) : void {

totalScore += diff;

if ( totalScore >= 20000 ) {

dispatchEvent ( new Event (“20000points”) );

myGame.removeEventListener ( "20000points", lvlUp );
myGame.removeEventListener ( "20000points", playBackground );
myGame.removeEventListener ( "20000points", playLvlUpSound );
myGame.removeEventListener ( "20000points", giveRandomStuff );

}
}

Po to kai yra iššaukiamas ( dispatch ) įvykis ( Event ), visi eventListener’iai kurie buvo užregistruoti bus įvykdyti, tokia eiliškumo tvarka kokia mes juos užregistravome.
Sekančios dvi komandos yra pritaikytos patikrinti ar tam tikras Event’as yra užregistruotas arba kam jis priklauso.

hasEventListener
Patikrina objektą ar jis turi kažkokį tai konkretų Event’ą ( tikrinamas yra objektas ):

myGame.hasEventListener ( "20000points" );

Gražinama reikšmė yra true arba false.

willTrigger
Patikrina ar kažkoks konkretus Event’as yra užregistruotas ( tikrinama yra viskas ):
willTrigger ( "20000points" );

Gražinama reikšmė yra true arba false.