Könyvhöz tartozó online melléklet
Könyv: ActionScript 3.0 a gyakorlatban (Colin Moock)
Melléklet: Bevezetõ
Az
ActionScript az Adobe Flash platformjának hivatalos programozási nyelve. Eredetileg
egyszerű animációvezérlő eszköznek szánták, de a kezdetek óta kifinomult
programnyelvvé fejlődött, amellyel webes, illetve mobileszközökre vagy asztali
számítógépekre szánt tartalmakat és alkalmazásokat készíthetünk. Az ActionScriptet
– gyökereihez híven – a legkülönfélébb célokra használhatják a programozók és
más tartalomelőállítók. Egy animátor például csupán néhány sornyi
ActionScripttel megállíthatja egy webes animáció lejátszását, egy felülettervező
néhány száz sor kóddal interaktívvá teheti egy mobiltelefon felületét, egy alkalmazásfejlesztő
pedig több ezer sornyi kódot írhat, hogy egy teljes levélolvasó programot készítsen
böngészőkhöz és asztali felhasználásra az ActionScript segítségével.
Ez
a könyv az ActionScript-programozás alapjait valóban kimerítő részletességgel
tárgyalja, rendkívül pontos és közérthető nyelven. Páratlan gondossága és
mélysége egy teljes évtizednyi napi rendszerességű ActionScript-kutatás,
gyakorlati programozói tapasztalat és az Adobe mérnökeivel folytatott korlátlan
eszmecsere eredménye. A kötet minden szavát gondosan ellenőrizték – sok
esetben többször is – az Adobe mérnöki csapatának kulcsfontosságú tagjai, beleértve
azokat, akik a Flash Playert, a Flex Buildert és a Flash fejlesztőkörnyezetet
készítik (lásd a Köszönetnyilvánítás
című részt a bevezetés végén).
Kezdők
is jöhetnek
Kötetünk
a programozók szemszögéből vizsgálja az ActionScriptet, de tételez fel
programozási előismereteket. Ha korábban soha nem programoztunk, kezdjük
az 1. fejezettel, amely végigvezet az ActionScript alapjain, és fellebbenti a fátylat
az olyan titokzatosnak tűnő kifejezésekről, mint a változó, a tagfüggvény, az osztály
vagy az objektum, majd folytassuk sorban
a többivel. Minden fejezet az előzőben bemutatott fogalmakra épül, és
az új témákat egyetlen hosszú leírásban vezeti be, amelyet elolvasva továbbhaladhatunk
a profi ActionScript-programozóvá válás útján.
Mindazonáltal,
amennyiben az Olvasó munkája a tervezés, és csak azt szeretné megtanulni, hogyan
vezérelhet animációkat a Flash fejlesztőkörnyezetben, valószínűleg
nem ezt a könyvet kell választania; az Adobe dokumentációiból mindent megtudhat,
amire csak szüksége van. Kötetünket akkor érdemes fellapozni, ha azt szeretnénk
megtudni, hogyan egészíthetjük ki programlogikával és -műveletekkel az alkotásainkat.
Útmutatás
a szakértőktől
Ha
már rendelkezünk némi ActionScript-tapasztalattal, ennek a könyvnek a segítségével
betömhetjük a tudásunk réseit, átismételhetjük a fontos fogalmakat, és a gondos
fogalmazásnak, illetve közérthető nyelvezetnek köszönhetően megérthetjük
a bonyolultabb elveket. Gondoljunk úgy a könyvre, mint egy
ActionScript-szakértőre, aki az asztalunknál ül, és akit megkérhetünk,
hogy magyarázza el az ActionScript eseményszerkezetének finomságait, vagy lebbentse
fel a fátylat a Flash Player biztonsági rendszeréről, esetleg szemléltesse
az ActionScript beépített XML-támogatásának (E4X) erejét. Persze arra is használhatjuk
a könyvet, hogy információt kérjünk az olyan kevéssé dokumentált témakörökről,
mint a névterek, a beágyazott betűtípusok, a betöltött tartalomhoz való
hozzáférés, az osztálykönyvtárak közzététele, a szemétgyűjtés vagy a képernyő
frissítése.
Kötetünk
igazi fejlesztői kézikönyv, tele gyakorlati útmutatókkal, fontos figyelmeztetésekkel
és hasznos példakódokkal, amelyek megmutatják, hogyan hajthatjuk végre helyesen
a különböző feladatokat.
Mit
tartalmaz a könyv?
Könyvünk
három részre oszlik:
Az
I rész (ActionScript – az alapok) átfogóan
tárgyalja az ActionScript nyelv magját, beleértve az objektumközpontú programozást,
az osztályokat, az objektumokat, a változókat, a tagfüggvényeket és függvényeket,
az öröklést, az adattípusokat, a tömböket, az eseményeket, a kivételeket, a hatóköröket,
a névtereket és az XML-t. A részt a Flash Player biztonsági rendszerének áttekintése
zárja.
A
II. rész (Megjelenítés és interaktivitás)
annak módszereit vizsgálja, hogy miként jeleníthetünk meg tartalmakat a képernyőn,
és hogyan válaszolhatunk a bemeneti eseményekre. A tárgyalt témák között olyanokat
találunk, mint a Flash futásidejű megjelenítési API-ja, a hierarchikus eseménykezelés,
az egér- és billentyűesemények kezelése, az animáció, a vektor- és bitképes
grafikák, a szövegkezelés, valamint a tartalombetöltő műveletek.
A
III. részben (Alkalmazott ActionScript)
az ActionScript kódok előállítására összpontosítunk: megnézzük, hogyan kombinálhatjuk
az ActionScriptet a Flash fejlesztőkörnyezetben általunk létrehozott anyagokkal,
hogyan használhatjuk a Flex keretrendszert a Flex Builder 2-ben, és hogyan készíthetünk
saját kódkönyvtárat.
A
kötet egy teljes, működőképes program áttekintésével zárul – egy virtuális
állatkerttel.
Mit
nem tartalmaz a könyv?
Az
ActionScript területe hatalmas – egyetlen könyvben lehetetlen teljesen lefedni,
ezért a könyvben a következő lényegesebb témákkal nem foglalkozunk kimerítően:
• MXML
• A Flex keretrendszer
• Flex Data Services
• A Flash fejlesztőkörnyezet beépített
összetevői
• Flash Media Server
• Flash Remoting
• A szabályos kifejezések támogatása az ActionScriptben
Ezekről
a témákról az Adobe dokumentációjában, valamint az O’Reilly Adobe Developer
Library-jében találunk bővebb információkat, a http://www.oreilly.com/store/series/adl.csp címen.
Függetlenség
a fejlesztőkörnyezettől
Könyvünk
az ActionScript-programozás olyan alapelveit mutatja be, amelyek minden ActionScript
3.0 fejlesztő-, illetve futásidejű környezetben érvényesek. Amennyire
csak lehetséges, kerüljük az eszközfüggő megoldásokat, és nem az eszközök
használatára, hanem a programozási elvekre összpontosítunk. A 29. fejezetben
ugyanakkor bemutatjuk, hogyan programozhatunk a Flash fejlesztőkörnyezetben,
a 30. fejezetben összefoglaljuk a legfontosabb tudnivalókat a Flex keretrendszer
használatáról a Flex Builder 2-ben, a 7. fejezetben pedig leírjuk, hogyan fordíthatunk
le egy programot a különböző fejlesztőeszközök (a Flash, a Flex
Builder 2 és az mxmlc) segítségével.
Most
fordítsuk a figyelmünket magára az ActionScript nyelvre. A következőkben a
tapasztalt programozóknak adunk technikai bevezetést az ActionScript 3.0 használatába.
Ha teljesen kezdők vagyunk a programozás terén, ugorjunk A könyvben
használt jelölések című részre, majd folytassuk az 1. fejezettel.
Az
ActionScript áttekintése
Az
ActionScript 3.0 objektumközpontú (objektumorientált) nyelv, amellyel alkalmazásokat
és a futásidejű Flash-ügyfélprogramokban (például a Flash Playerben vagy
az Adobe AIR-ben) lejátszható programozott multimédiás tartalmakat készíthetünk.
Mivel az ActionScript nyelvtana hasonlít a Java és a C# nyelvekére, ismerős
lehet a tapasztalt programozóknak. Az alábbi kód például egy width nevű, int (integer, vagyis egész szám) típusú
változót hoz létre, és a 25 értéket rendeli hozzá:
var
width:int = 25;
A
következő kóddal egy for ciklust
hozunk létre, amely 10-ig számol:
for
(var i:int = 1; i <= 10; i++) {
// Az itt található kód 10 alkalommal
fut le
}
Ez
a kód pedig egy Product nevű osztályt
hoz létre:
//
Az osztály meghatározása
public
class Product {
// Egy Number típusú példányváltozó
var price:Number;
// A Product osztály
létrehozófüggvénye
public function Product() {
//
Az itt található kód előkészíti a Product példányokat
}
// Példánytagfüggvény
public function doSomething():void {
//
Az itt található kód akkor fut le, amikor meghívjuk // a doSomething()
függvényt
}
}
A
nyelv magja
Az
ActionScript 3.0 nyelv magja az ECMAScript nyelvleírás 4. kiadásán alapul,
amely 2007 májusában még fejlesztés alatt állt.
Az
ECMAScript 4 szabványt a http://developer.mozilla.org/es4/spec/spec.html, az ActionScript
3.0 szabványleírását pedig a következő címen tekinthetjük meg:
http://livedocs.macromedia.com/specs/actionscript/3
A
jövőben az ActionScript a várakozások szerint a szabványnak teljesen megfelelő
megvalósításává válik az ECMAScript 4-nek. Az ActionScripthez hasonlóan a népszerű
böngészőnyelv, a JavaScript is az ECMAScriptre épül. A Firefox webböngésző
jelenleg fejlesztett 3.0-s változatában már az ActionScriptével megegyező
kódalappal valósítják meg a JavaScript 2.0-t, mely kódot 2006 novemberében nyújtotta
át az Adobe a Mozilla Foundationnek. (Erről a következő címen tudhatunk
meg többet: http://www.mozilla.org/projects/tamarin)
Az
ActionScript nyelvtanának alapjait az ECMAScript 4 határozza meg. Ebbe az alapba
tartoznak mindazok a kódok, amelyekkel kifejezéseket, utasításokat, változókat,
függvényeket, osztályokat és objektumokat hozhatunk létre. Az ECMAScript 4 emellett
beépített adattípusok egy kisebb halmazát is meghatározza, amelyek a gyakoribb
értéktípusok (String, Number és Boolean) kezelésére szolgálnak.
Az
ActionScript 3.0 legfontosabb nyelvi szolgáltatásai a következők:
• Az olyan szokványos objektumközpontú szerkezetek,
mint az osztályok, az objektumok és a felületek elsőrangú támogatása
• Egyszálas végrehajtási modell
• Futásidejű típusellenőrzés
• Választható fordítási idejű típusellenőrzés
• Dinamikus képességek, például új
konstruktorfüggvények és változók létrehozása futásidőben
• Futásidejű kivételek
• Az XML közvetlen támogatása beépített adattípusként
• Csomagok a kódkönyvtárak rendszerezéséhez
• Névterek az azonosítók minősítéséhez
• Szabályos kifejezések
A
nyelv magjának ezeket a szolgáltatásait az ActionScript 3.0-t ismerő minden
futásidejű Flash-ügyfélprogram támogatja. Ebben a könyvben a nyelv magját
teljes egészében ismertetjük, a szabályos kifejezések kivételével.
Futásidejű
Flash-ügyfelek
Az
ActionScript nyelven írt programok három különböző futásidejű ügyfélkörnyezetben
futtathatók. Ez a három környezet az Adobe AIR, a Flash Player és a Flash Lite.
Adobe AIR
Az Adobe AIR a Flash platformra fejlesztett
programokat asztali alkalmazásként futtatja. Az Adobe AIR nem csak az SWF formátumú
tartalmakat, hanem a HTML és a JavaScript segítségével előállított állományokat
is támogatja. Az AIR-t közvetlenül a végfelhasználó számítógépére kell telepíteni,
az operációs rendszer szintjén. További információkért keressük fel a http://www.adobe.com/go/air címet.
Flash Player
A Flash Player a webes közzétételre szánt
Flash-anyagok és -alkalmazások lejátszója, amely az első számú választás,
amikor egy weboldalba beágyazott SWF formátumú anyagot szeretnénk futtatni. A Flash
Playert jellemzően webböngésző-bővítményként telepítik, de önálló
alkalmazásként is képes futni.
Flash Lite
A Flash Lite a mobileszközökre készített
Flash-anyagokhoz és -alkalmazásokhoz való. A mobileszközök teljesítménykorlátai
miatt a Flash Lite általában lassabb és kevesebb szolgáltatást nyújt, mint a Flash
Player vagy az Adobe AIR. 2007 júniusában a Flash Lite még nem támogatta az ActionScript
3.0-t.
A
fenti futásidejű Flash-ügyfélkörnyezetek alapszolgáltatásaikban azonosak,
de az adott környezet képességeitől és biztonsági követelményeitől
függően további szolgáltatásokat is nyújtanak. Az Adobe AIR, a Flash
Player és a Flash Lite például ugyanazt a nyelvtant használja a változók létrehozására,
de az Adobe AIR ablakkezelő és fájlrendszer-kezelő API-val is rendelkezik,
a Flash Lite képes rezgésre bírni a mobiltelefont, míg a Flash Player kifejezetten
webes biztonsági szolgáltatásokat is nyújt a felhasználó adatainak védelmére.
Futásidejű
API-k
Minden
futásidejű Flash-ügyfélprogram saját függvény-, változó-, osztály- és objektumkészlettel
rendelkezik – ezt hívjuk az adott környezet futásidejű
alkalmazásprogramozási felületének (futásidejű API). Az egyes ügyfélprogramok
futásidejű API-jának saját neve van; a Flash Playeré például a Flash Player API.
Minden
ügyfélprogram futásidejű API-ja azonos alapszolgáltatásokat nyújt, például
ugyanazokat az alapvető osztályokat kínálja a tartalom megjelenítéséhez a képernyőn,
valamint az események elindításához.
A
futásidejű Flash-ügyfélprogramok legfontosabb közös szolgáltatásai a következők:
• Grafikák és videók megjelenítése
• Hierarchikus eseményarchitektúra
• Szövegmegjelenítés és szöveges bemenet kezelése
• Vezérlés az egérrel, illetve a billentyűzetről
• Hálózati műveletek a külső adatok
betöltéséhez, valamint a kiszolgálóoldali alkalmazásokkal való kapcsolattartáshoz
• Hanglejátszás
• Nyomtatás
• Kommunikáció külső helyi alkalmazásokkal
• Programozási segédek
Ebben
a könyvben a fentiek közül az első ötöt tárgyaljuk. Ha a többi futásidejű
API valamelyikéről szeretnénk többet tudni, forduljunk az adott termék dokumentációjához.
Összetevők
A
futásidejű Flash-ügyfélprogramok API-jai mellett az Adobe két összetevőkészletet is a programozók
rendelkezésére bocsát a legfontosabb programozási feladatok elvégzéséhez, illetve
a felhasználói felületek építéséhez. A Flex Builder 2-ben és az ingyenes Flex 2
SDK-ban a Flex keretrendszert találjuk,
amely felhasználói felületi vezérlők teljes készletét határozza meg, például
olyan vezérlőket, mint a választógomb (RadioButton),
a jelölőnégyzet (CheckBox) vagy
a listamező (List). A Flash fejlesztőkörnyezet
ezzel megegyező felhasználói felületi összetevőket biztosít, amelyek
egyesítik a kódot a saját kezűleg létrehozott grafikus elemekkel, amelyeket
a Flash-fejlesztők és -tervezők testreszabhatnak.
Mind
a Flex keretrendszer, mind a Flash fejlesztőkörnyezet összetevőkészlete
teljes egészében az ActionScript 3.0-ban íródott. A Flex keretrendszer felhasználói
felületi összetevői összességében több szolgáltatást nyújtanak, mint a Flash
fejlesztőkörnyezet hasonló összetevői, de ezért nagyobb fájlméretet
is eredményeznek.
A
Flex keretrendszer felhasználói felületi összetevői nem használhatók a Flash
fejlesztőkörnyezetben, de a Flash hasonló összetevői (mind technikailag,
mind jogilag) alkalmazhatók a Flex Builder 2-ben és az mxmlc-ben.
Kötetünkben
nem foglalkozunk az összetevők használatával, illetve létrehozásával az ActionScriptben.
Ha többet szeretnénk tudni az összetevőkről, forduljunk a megfelelő
termék dokumentációjához.
A
Flash fájlformátum (SWF)
Az
ActionScript kódot .swf fájlba kell
fordítani, hogy lejátszható legyen valamelyik futásidejű
Flash-ügyfélprogramban. Az .swf fájl
ActionScript bájtkódot és beágyazott elemeket (képeket, hanganyagot, videókat
és betűtípusokat) egyaránt tartalmazhat. Egyes .swf fájlokban csak elemeket találunk, kódot nem, míg mások csak kódot
tartalmaznak, elemeket nem. Egy ActionScript program lehet egyetlen .swf fájlban, de szétoszthatjuk több .swf fájl között is. Ha egy programot
széttördelve több .swf fájlba helyezünk,
az egyikben lesz a program belépési pontja, és ez tölti majd be a többi .swf fájlt, amikor azokra szükség van.
Ha egy bonyolult programot több .swf
fájlba osztunk szét, azzal megkönnyítjük a program későbbi karbantartását,
és az Interneten közzétett alkalmazások esetében a felhasználónak gyorsabb hozzáférést
nyújthatunk a program egyes részeihez.
ActionScript-fejlesztőeszközök
Az
Adobe a következő eszközöket biztosítja az ActionScript kódok létrehozásához:
Adobe Flash
http://www.adobe.com/go/flash
Vizuális tervező- és programozóeszköz
olyan multimédiás tartalmak előállításához, amelyek egyesítik a grafikákat,
a mozgóképeket, a hanganyagokat, az animcáiókat és az interaktivitást. Az Adobe
Flash-ben a fejlesztők úgy hozhatnak létre interaktív tartalmakat, hogy
ActionScript kódokat kombinálnak animációval, saját kezűleg megalkotott
anyagokkal és beágyazott elemekkel. Az Adobe Flash Flash fejlesztőkörnyezet néven is ismeretes. 2007 júniusában a
Flash fejlesztőkörnyezet legfrissebb változata a Flash CS3 (a szoftver
9-es változata) volt.
Adobe Flex
Builder
http://www.adobe.com/products/flex/productinfo/overview
Fejlesztőeszköz tisztán ActionScript
vagy MXML segítségével előállított tartalmakhoz. (Az MXML egy XML alapú nyelv, amellyel felhasználói felületeket írhatunk
le.) A Flex Builder része a Flex keretrendszerként ismert fejlesztői keretrendszer,
amely a programozási segédek és a változtatható stílusú és megjelenésű
(„bőrözhető”) felhasználó felületi vezérlők könyvtárainak széles
körét biztosítja. A Flex Builder 2 az Eclipse nevű népszerű, nyílt
forrású programozóeszközre épül, és egyaránt használható „kézi kódolásra”, illetve
a Microsoft Visual Basicéhez hasonló vizuális fejlesztésre.
Adobe Flex 2
SDK
http://www.adobe.com/go/flex2_sdk
Ingyenes parancssori eszközkészlet tisztán
ActionScript 3.0 vagy MXML segítségével előállított tartalmakhoz. A Flex 2
SDK is tartalmazza a Flex keretrendszert, valamint része egy parancssori fordító,
az mxmlc is (ami szintén megtalálható
az Adobe Flex Builder 2-ben). A Flex 2 SDK segítségével a fejlesztők szabadon
készíthetnek tartalmakat az általuk választott szerkesztőprogramban. (Az
ActionScript nyelvű fejlesztéshez használható nyílt forrású eszközökről
és segédprogramokról a http://osflash.org
címen tájékozódhatunk.)
A
könyv példafájljai
Könyvünk
hivatalos webhelyének címe:
A
kötet példafájljai a következő címről tölthetők le:
http://moock.org/eas3/examples
A
könyv példáinak többségét egy fő osztály tartalmazza, amelyet (a Flash fejlesztőkörnyezetben)
egy .fla fájl dokumentumosztályaként, illetve (a Flex Builderben) egy projekt alapértelmezett alkalmazásosztályaként
kell lefordítani.
A
példakódok használata
Ezt
a könyvet azért készítettük, hogy segítsen a munkánk elvégzésében. A benne szereplő
kódok általában felhasználhatók a programjainkban és dokumentációinkban, tehát
nem kell engedélyért folyamodni a kiadóhoz, hacsak nem jelentős mennyiségű
kódot kívánunk lemásolni. Például ha olyan programot írunk, amely több kisebb
kódrészletet használ fel a könyvből, nincs szükség engedélyre, de ha terjeszteni
vagy eladni szeretnénk egy O’Reilly könyvből származó példákat tartalmazó
CD-ROM-ot, akkor igen. Ha a könyvet, illetve egy benne szereplő példakódot
idézve válaszolunk egy kérdésre, ugyancsak nem kell engedélyt kérnünk, de ha
termékünk dokumentációja jelentős mennyiségű példakódot emel át ebből
a könyvből, már engedélyre lesz szükségünk.
Örülünk
neki, de nem követeljük meg, ha valaki feltünteti a forrást. A forrás feltüntetése
általában a szerző, a cím, a kiadó és az ISBN-szám jelzését jelenti, például
így: „Colin Moock: Essential ActionScript
3.0, Copyright 2007, O’Reilly Media, Inc., 0-596-52694-6”.
Ha
a kódpéldákat olyan formában szeretnénk felhasználni, ami érzésünk szerint a fent
említett szabad felhasználási körökön kívül esik, lépjünk kapcsolatba a kiadóval
a permissions@oreilly.com címen.
A
könyvben használt jelölések
Az
ActionScript különböző nyelvi elemeinek megkülönböztetésére a könyv a következő
jelöléseket használja:
Menüpontok
A menüparancsok elérési útjában az egyes
elemeket vesszővel választjuk el egymástól, ilyen formában: Fájl, Megnyitás.
Állandó
szélességű betűk
Ez a formázás kódpéldákat, kódrészleteket,
változóneveket és paraméterneveket jelöl.
Dőlt betűk
‑Dőlt betűvel írjuk
a függvény- és tagfüggvényneveket, az osztály- és csomagneveket, az URL-eket, a
fájlneveket, az adattípusokat, a kulcsszavakat, az objektumok nevét, és az olyan
fájlkiterjesztéseket, mint az .swf. A
törzsszövegben a dőlt betűs kiemelés mellett a függvény- és
tagfüggvényneveket zárójelek követik, például így: duplicateMovieClip().
Állandó szélességű félkövér szöveg
Ez a formázás olyan szöveget jelöl,
amit pontosan így kell beírni, amikor követjük a leírt lépéseket. Néha ugyancsak
állandó szélességű félkövér kiemelést alkalmazunk
a kódpéldákon belül, például hogy egy nagyobb példában felhívjuk a figyelmet
egy fontos kódsorra.
Állandó szélességű dőlt betűs szöveg
‑Ez a formázás olyan kódot jelöl,
amelyet egy megfelelő értékkel kell helyettesítenünk (például: ide_jön_a_nevünk)
Ez
az ikon egy tippet jelöl, ami hasznos információval lát el minket az adott témá‑val
kapcsolatban, megvilágít egy fontos fogalmat, vagy leírja a követendő kódolási
gyakorlatot.
Ez
az ikon egy figyelmeztetést jelöl, ami segít megoldani egy idegesítő problémát.
Csak a saját felelősségünkre hagyjuk figyelmen kívül!
Ez
az ikon egy megjegyzést jelöl az ActionScript 2.0-ról, amelyben
összehasonlítjuk az ActionScript 2.0-ban, illetve az ActionScript 3.0-ban tapasztalható
viselkedést, hogy megkönnyítsük az átállást az ActionScript 3.0-ra, illetve
hogy könnyebben megértsük a nyelv két változata között fennálló különbségeket.
A
kódolásra és a szóhasználatra a könyv a következő szabályokat alkalmazza:
• A this kulcsszót állandó szélességű betűvel írjuk, mert
ez egy rejtett paraméter, amelyet átadunk egy függvénynek vagy tagfüggvénynek.
• A this kulcsszó általában nem szerepel, amikor
példánytagfüggvényekből hivatkozunk azonosítókra, de használjuk, hogy megkülönböztessük
a példányváltozókat és példánytagfüggvényeket a paraméterektől és a helyi
változóktól.
• A kiolvasófüggvények és módosítófüggvények
tárgyalása során kerüljük a hagyományos elérő
(accessor), változtató (mutator), lekérdező (getter) és beállító (setter) kifejezéseket; helyettük
a könyvben a nem hivatalos kiolvasófüggvény
és módosítófüggvény kifejezéseket
használjuk (lásd a 3. fejezetet).
• A statikus változókat, statikus tagfüggvényeket,
példányváltozókat, példánytagfüggvényeket és létrehozófüggvényeket (konstruktor
tagfüggvényeket) tartalmazó osztály-meghatározásokban először a statikus
változókat szerepeltetjük, ezt követik a statikus tagfüggvények, a példányváltozók,
az osztály konstruktorfüggvénye, majd végül a példánytagfüggvények.
• A könyvben az állandók nevét CSUPA NAGYBETŰVEL
írjuk.
• Amikor statikus változókra és statikus tagfüggvényekre
hivatkozunk, a könyvben mindig feltüntetjük a változót vagy tagfüggvényt meghatározó
osztály nevét.
• Hacsak nem jelezzük, a függvényzáradékokra mindig a rövidebb függvény kifejezéssel hivatkozunk. A két kifejezés közötti különbséget
az 5. fejezetben írjuk le.
• A könyv feltételezi, hogy minden kódot szigorú
módban fordítunk le, valamint a 7. fejezettől kezdve megadjuk a típusjelzést
minden változóhoz, paraméterhez és visszatérési értékhez.
• A könyvben szereplő eseményfigyelők
neve az eseményNévListener formát követi, ahol az eseményNév az esemény karakterlánc
formátumú neve.
Elérhetőségeink
A
könyv tartalmát a legjobb tudásunk szerint ellenőriztük, de esetleg találhatunk
benne olyan szolgáltatásokat, amelyek időközben megváltoztak (és természetesen
mi is követhettünk el hibákat). Ha az Olvasó hibára bukkanna a könyvben, kérjük,
jelezze nekünk, valamint ha javaslatai vannak a jövőbeli kiadásokkal kapcsolatban,
azt is szívesen vesszük. A következő címre lehet írni nekünk:
O’Reilly
Media, Inc.
1005
Gravenstein Highway North
Sebastopol,
CA 95472
Telefon-
és faxszámaink:
(800)
998-9938 (az Egyesült Államokban, illetve Kanadában)
(707)
829-0515 (nemzetközi/helyi)
(707)
829-0104 (fax)
Könyvünkhez
egy webhely is kapcsolódik, ahol megtalálhatjuk a kötet hibajegyzékét, a példafájlokat,
valamint további információkat. Az oldal a következő címen érhető el:
http://www.oreilly.com/catalog/9780596526948
Ha
a könyvvel kapcsolatban technikai kérdéseink vagy észrevételeink vannak, erre a
címre küldhetünk e-mailt:
bookquestions@oreilly.com
Könyveinkről,
konferenciáinkról, szoftvereinkről, forrásközpontjainkról és az O’Reilly
hálózatáról az alábbi webhelyen kaphatunk tájékoztatást:
http://www.oreilly.com
Safari®
Enabled
Ha
a Safari® Enabled ikont látjuk az egyik kedvenc számítógépes könyvünk borítóján,
az azt jelenti, hogy a könyv az Interneten is elérhető, az O’Reilly
Network Safari Bookshelfen keresztül. A Safari az e-könyveknél jobb megoldást
kínál. Ez egy virtuális könyvtár, amelyben könnyen kereshetünk a legkeresettebb
műszaki szakkönyvek ezrei között, átmásolhatunk belőlük kódpéldákat,
letölthetünk fejezeteket, és gyorsan pontos választ kaphatunk a legégetőbb
kérdésekre. A szolgáltatás ingyenesen kipróbálható a http://safari.oreilly.com címen.
Ez
a könyv nem készülhetett volna el az Adobe és az O’Reilly rendületlen bizalma
és aktív támogatása nélkül. 2005 nyarán ültünk le tárgyalni Steve Weiss-szel,
Lisa Friendly-vel és Mike Chambersszel, és ekkor egyeztem bele, hogy megírom az
ActionScript 3.0 a gyakorlatban című
könyvet. A könyvet eredetileg „az Essential
ActionScript 2.0 rövid frissítésének” szántuk, de ahogy az ActionScript 3.0
nyelv fejlődött, az új kötet is teljes könyvvé terebélyesedett. Az Adobe
és az O’Reilly türelemmel és töretlen hittel viselte, hogy a könyv terjedelme
jelentősen megnőtt, és hozzájárultak a kötet elkészülésére megszabott
kilenc hónapos határidő két évre történő meghosszabításához. A munka
során végig úgy éreztem, hogy helyes döntés született, és örülök, hogy az Adobe
és az O’Reilly is így gondolta.
Miközben
írtam a könyvet, az Adobe nagylelkűen teljes hozzáférést engedett nekem a belső
forrásanyagaihoz, és mérnökei időt szakítottak a szakmai lektorálásra. Külön
köszönettel tartozom JuLee Burdekinnek és Francis Chengnek az Adobe dokumentációs
csapatából. Ők egyengették az utamat az Adobe-n belül, és türelmesen válaszoltak
a kérdések látszólag végeláthatatlan sorára.
Az
Adobe munkatársainak tucatjai láttak el információkkal és tanácsokkal a kutatómunka
közben. Mindnyájuknak nagyon hálás vagyok, de külön köszönetet szeretnék mondani
a következő személyeknek:
• Francis Cheng folyamatosan tájékoztatott a nyelv
magjával kapcsolatos tudnivalókról, és a könyv kéziratát elolvasva rendkívül értékes
észrevételeket tett. Francis tagja az ECMAScript 4 bizottságnak, és egyike az ActionScript
3.0 szabványleírás kidolgozóinak.
• Jeff Dyer következetesen időt szorított
nekem a naptárában, hogy segítsen tisztázni az alapnyelvi fogalmakat és megkeresni
a hibákat. Jeff egyike az ActionScript 3.0 fordító vezető fejlesztőinek,
ő a fő szerzője az ActionScript 3.0 leírásának, és az ECMAScript
4 bizottságnak is kulcsfontosságú tagja.
• Deneb Meketa türelmesen viselte, hogy félreértettem
a Flash Player biztonsági rendszerét, és több mint egy hónapon át tartó intenzív
munkával telefonon és e-mailekben segített kitisztázni a 19. fejezetet. Deneb a
Flash Player biztonsági rendszerének megvalósításáért felelős mérnök.
• Jeff Mott, a Flash Player egyik fejlesztője,
kimerítő és szinte azonnali válaszokat adott az ActionScript eseményrendszerével
kapcsolatos kérdéseimre.
• Jim Corbett, aki szintén egyike a Flash
Player fejlesztőinek, a megjelenítési listákkal és az eseménybetöltéssel
kapcsolatos finomságok sokaságát segített megértenem.
• Rebecca Sun, a Flash fejlesztőkörnyezet
mérnöke, az ActionScript 3.0 fordítójának és a Flash CS3-nak a kapcsolatát magyarázta
el nekem, valamint nyitottnak bizonyult a javaslataimra, és nem zökkentették ki
azok a gyakori spontán kérdéseim sem, amelyek az azonnali üzenetküldésre vonatkoztak.
• Lee Thomason, a Flash Player programozója,
személyes leckéket adott a Flash Player szövegleképező motorjáról.
• Roger Gonzalez, a Flex fordítójának programozója,
az osztályok betöltésével és a Flex fordítóval kapcsolatban válaszolt rendszeresen
a kérdéseimre.
• Werner Sharp, a Flash Player mérnöke, a bitképprogramozás
finomságait magyarázta el nekem az ActionScriptben.
• Paul Betlem, a Flash Player mérnöki csapatának
vezetője, a szakmai lektorálást fogta össze, és maga is több fejezetet ellenőrzött.
• Mike Chambers, az Adobe AIR fejlesztői
kapcsolatokért felelős vezető termékmenedzsere, rendszeresen műszaki
információkkal látott el, és a könyv megírásában kezdettől fogva segédkezett.
• Gary Grossman, az ActionScript eredeti megalkotója
tanította meg nekem a nagy részét annak, amit ma a Flash-programozásról tudok.
2006 augusztusában Gary csatlakozott a Flash feltalálóihoz (Jon Gay-hez és
Robert Tatsumihoz), hogy megalapítsanak egy új céget Software as Art néven.
Webhelyük a http://www.softwareasart.com
címen található.
Az
Adobe csapatának korábbi és jelenlegi tagjai, akiket megtiszteltetés volt megismernem,
és akikkel örülök, hogy együtt dolgozhattam: Mike Downey, Kevin Lynch, Paul
Betlem, Edwin Smith, Christine Yarrow, Jeff Kamerer, Nigel Pegg, Matt
Wobensmith, Thomas Reilly, Jethro Villegas, Rob Dixon, Jeff Swartz, Waleed
Anbar, Chris Thilgen, Gilles Drieu, Nivesh Rajbhandari, Tei Ota, Akio Tanaka,
Sumi Lim, Troy Evans, John Dowdell, Bentley Wolfe, Tinic Uro, Michael Williams,
Sharon Seldon, Jonathan Gay, Robert Tatsumi, Pete Santangeli, Mark Anders, John
Nack, Matt Chotin, Alex Harui, Gordon Smith, Sho Kuwamoto, Craig Goodman,
Stefan Gruenwedel, Deepa Subramaniam, Ethan Malasky, Sean Kranzberg, Michael
Morris, Eric Wittman, Jeremy Clark és Janice Pearce.
A
következő táblázatban összefoglaltam a kötet szakmai lektorait, akiknek
mély hálával tartozom.
Az Adobe szakmai lektorai
Küldött
Lektor Beosztás A lektorált fejezet e-mailek száma
Deneb Meketa Computer Scientist, Flash
Platform 17 75
Erica Norton Senior Quality Engineer,
Flash Player 14, 19,
21, 22 3
Francis Cheng Senior Technical Writer 1-11, 13, 15, 334 16,
18
Jeff Dyer Compiler Architect,
ActionScript 17 106 Language Group
Jeff Mott Computer Scientist, Flash
Player 12, 20-25 85 Engineering
Jim Corbett Senior Computer Scientist,
20, 23, 24, 28 52 Flash Player Engineering
Lee Thomason Architect, Flash Player 25, 27 33
Mike Chambers Senior Product Manager,
Developer 1 89 Relations, Adobe AIR
Mike Richards Computer Scientist, Mobile
and Devices 22-26 9
Paul Robertson ActionScript
Developer/Writer 1,
2, 24, 27-31 14
Paul Betlem Senior Director, Flash Player
Engineering 20, 27,
26 19
Rebecca Sun Computer Scientist, Flash
Authoring 7, 29, 31 60
Robert Penner Senior Engineer, Flash
Authoring 18, 23-25 16
Roger Gonzalez Flex Compiler Architect 25, 30, 31 64
Werner Sharp Senior Computer Scientist,
18, 22 35 Flash Player Engineering
Köszönet
illeti Robyn Thomast, a köny szerkesztőjét, aki igen gyorsan és gondosan
ellenőrizte és kitisztázta a kéziratot, valamint az O’Reilly vezetésének,
szerkesztői, gyártási, belső tervezési, művészeti, marketinges
és forgalmazói csapatának minden tagját, beleértve Tim O’Reilly-t, Steve Weisst
és Karen Montgomery-t. Köszönet jár Philip Dangler olvasószekesztőnek is,
aki segített következetessé, olvashatóvá és pontossá tenni a szöveget.
A
könyv tartalmának helyességét és minőségét nem csak az Adobe szakmai lektorai
ellenőrizték, hanem lelkes önkéntes tesztelők is: Brett Walker,
Chafic Kazoun, Derek McKenna, Edwin van Rijkom, Greg Burch, Jim Armstrong, Jon
Williams, Mark Jonkman, Matthew Keefe, Mauro Di Blasi, Ralf Bokelberg, Ric
Ewing, Robin Debreuil és Victor Allen. Az ő segítségük pótolhatatlannak bizonyult:
sok-sok következetlenséget és nehezen észrevehető kódolási hibát fedeztek
fel. Mark Jonkman külön említést is érdemel, amiért rendkívüli alapossággal
vizsgálta át a kéziratot és a kódpéldákat.
Programozóként
és íróként két mentorom volt: Bruce Epstein és Derek Clayton. Bruce szerkesztette
minden korábbi könyvemet, és amit tanultam tőle, az ma is hatással van minden
egyes szóra, amit leírok. Derek a moock.org Unity nevű többbfelhasználós
kiszolgálójának (http://www.moock.org/unity)
megalkotója és jó barátom, akitől ma is rendszeresen kapok programozási ötleteket.
Természetesen
egyetlen ECMAScript alapú nyelvről írt könyv sem lehet teljes anélkül,
hogy el ne ismernénk Brendan Eich úttörő munkáját a JavaScript és az ECMAScript
fejlesztése terén. Köszönjük, Brendan!
Végül,
viszonozni szeretném a következő személyek szeretét és barátságát: James
Porter, Graham Barton, Joe Duong, Tommy Jacobs, Wendy Schaffer, Andrew Harris,
Dave Luxton, Dave Komlos, Marco Crawley, Eric Liphardt, Ken Reddick, Mike
Linkovich, Matt Wearn, Mike Dobell, Mike „Nice”, Hoss Gifford, Erik Natzke,
Jared Tarbell, Marcos Weskamp, Dan Albritton, Francis Bourre, Thijs Triemstra,
Veronique Brossier, Saima Khokhar, Amit Pitaru, James Patterson, Joshua Davis,
Branden Hall, Robert Hodgin, Shin Matsumura, Yugo Nakamura, Claus Whalers,
Darron Schall, Mario Klingeman, Fumio Nonaka, Robert Reinhardt, Grant Skinner,
és a Moock-család.
Colin
Moock
2007. március
Toronto, Kanada