Metodai, Programavimo pagrindai
// July 23rd, 2008 // AS3
Metodai ( Funkcijos )
Metodų pagalbą mes galime nurodyti objektui ką jam reikia daryti, tarkim play(), stop(). Daugumą ActionScript’o klasių turi specifinius metodus, prie viso to, mes taip pat galime susikurti savo metodų, pvz: objectFadeOut() ( metodas kuris prives objektą išnykti ), iš šalies tai bus tik paprasta funkcija.
p.s. neturėjau kur juos padėti, galvojau atskirą postą jiems daryti bet kad nerą ką apie juos daug rašyti…
Programavimo pagrindai
Kadangi AS3 reikalauja tvarkos ir mes jau programuojame klasėmis, tai nutariau užkabinti vieną nedidelę, bet mano manymu svarbią sritį – informacijos apsirašymą.
AS3 kiekvienas objektas ( klasė, kintamasis, metodas, konstantą ) aprašomas tokiu eiliškumu:
[ pobūdis 1 ] [ pobūdis 2 ] [ tipas ] [ pavadinimas ] [ ką veiks? ] [ parametrai ]
Pobūdis 1
public – nusako kad aprašomas objektas bus viesiems prieinamas.
private – nusako kad aprašomas objektas bus prieinamas tik package viduje, bus draudžiama į šį objektą kreiptis iš kitų klasių.
protected – veikia taip pat kaip private, bet į jį galima kreiptis ir iš subklasių.
dynamic – šitas aprašas labai patiks tiems kurie yra per daug susitapatinę su AS2, tvarkos panaikinimas. Klasėje nebereikia aprašinėti kintamųjų, juos galima pridėti iš kitų klasių, kaip sakant on the run…
internal – kiekvienas objektas gauna šitą parametrą pagal nutilėjimą, jis veikia tik toje klasėje ar funkcijoje kurioje yra aprašytas.
Pobūdis 2
– nusako jog klasė ar metodas yra galutiniai ir neplečiami.
final
static – nusako kad kintamasis priklauso pačiai klasei, o ne objektui.
Tipas
class – nusako kad tai bus klasė kurioje bus kintamieji, metodai ar konstantos kurios galės turėti savo parametrus ir t.t.
function – nusako kad tai bus metodas, kuris atliks tam tikrus skaičiavimus ar išvedimus.
var – nusako kad tai bus kintamasis, kuris savyje talpins tam tikrą informaciją.
const – nusako kad tai bus konstanta, skaičius kuris turės ti kvieną reikšmę ir jo negalima bus pakeisti.
Pavadinimas
Kiekvienas mes turime savo programavimo kultūra, todėl manau kad patys sugalvosite kaip turėtu vadintis jūsų kintamasis ar metodas.
Ką veiks?
extends – praplečia klasę.
implements – šito kintamojo paskirties nelabai atvirai pasakius nesupratu ir nenaudoju aš jos, gal kas nors norėtu pasidalitni informacija?
Parametrai
Priklausomai nuo aplinkybių parametrai gali skirtis.
Jeigu ką nors praleidau, papildykite.

Kelios didesnes pastabos:
nepaminetas protected namespace
rasom dynamic (ne dinamic)
apskritai neaiskus terminas “pobudis”
“extends – praplečia klasę arba metodą.” – Tik klases paveldejimas, metodams netaikomas.
override yra naudojamas tevo klases metodu “pakeitimui” vaiku klasese.
implements nurodo kuriuos inteface reikia realizuoti.
Trumpai ir klaidinaciai apie interface
interface sudaro aibe metodu, kuriuos ji “implementinanti” klase turi realizuoti. Interface nurodomos tik metodu antrastes (be pacios realizacijos). Inteface gali buti paveldimi. Klase gali realizuoti kelis interface. Interface gali buti naudojamas kaip tipas.
Interface yra tam tikras “saugus” budas realizuoti paveldejima is keliu klasiu (tiksliau is vienos klases ir daugeliu interfeisu)
Tarkim kokiame nors zaidime butu esybe priesas (enemy). Tarkim ji galima uzmusti (ir gauti score!). Tada siaip enemy koceptui parasom interface:
public interface IEnemy
{
public function kill():void;
}
toliau tarkim mes turesim keleta priesu: vieni nejudantys(ne animuoti), kiti judantys (animuoti). Pirmiems kaip tevine klase naudosim Sprite klase, o antriems MovieClip, bet abu implementina ta pati interfeisa.
toliau kazkur neruodami priesus mes galime darytiu taip
var newEnemy:IEnemy;
if (needAnimatedEnemy)
{
newEnemy = new EnemyExtendsMovieClip();
} else
{
newEnemy = new EnemyExtendsStripe();
}
newEnemy.kill();
Esme, kad turime skirtingu klasiu objektus, bet gali eltis su jais kaip su vienodo tipo.
biški pasitaisiau. dėkui.
reikia patikrinti:)