OOP4AS2#2: Klases elementi
Grant Skinner. OOP4AS2#2: Class membersPirmajā daļā mēs iemācījāmies kā definēt klasi AS2 un kā radīt šīs klases instances. Ja jūs nelasījāt pirmo daļu, jums vajdzētu to izdarīt. Tagad mēs apskatīsim kā pievienot elementus (īpašības un metodes) mūsu klasei. Kā arī ātri ieskatīsimies strikto tipu noteikšanā.
Ir svarīgi piezīmēt, ka AS2 ir reģistrjūtīgs, tātad piedomājiet pie jūsu „P” un „q”.
Elementu pievienošana klasei ir ārkārtīgi vienkārša: definējiet mainīgos un funkcijas klases blokā un tie kļūst par šis klases īpašībām un metodēm. Šīs īpašības un metodes būs pieejamas katrai klases instancei. Apskatīsimies:
ACTIONSCRIPT:
class GThing {
var myName = "gMan";
function getGreeting(p_salutation) {
return p_salutation+" "+myName;
}
}
|
Dažas svarīgas piezīmes par šo piemēru:
- Īpašības definīcijai jāsākas ar atslēgvārdu var.
- Atšķirībā no AS1, kur jums bija jālieto prefikss this īpašību vārdiem metodēs, jūs varat tieši norādīt uz tām. AS2 pēc noklusējuma metodes darbības lauks ir instances darbības lauks (this ir piedomāts).
Tagad atgriezīsimies pie FLA un notestēsim, jūs (cerams) redzēsiet kā tas strādā:
ACTIONSCRIPT:
myG = new GThing();
trace(myG.getGreeting("Cheers"));
// traces "Cheers gMan"
|
AS2 jums ir arī iespēja lietot strikto tipu noteikšanu kompilēšanas laikā. Būtībā tas nozīmē, ka jūs varat prasīt Flash kompilātoram brīdināt jūs, ja jūs mēģinat iespiest nepareiza tipa objektu (teiksim Number) nepareiza tipa mainīgajā (piemēram String).
Lai izdarītu to īpašībam, deklarējot mainīgos un parametrus vienkārši pievienojiet aiz kola objekta nosaukumu. Funkcijas atgriežamā lieluma tipa definēšana ir līdzīga: pievienojiet pēc funkcijas parametru apaļās iekavas aiz kola objekta nosaukumu.
Apskatīsimies kā tas darbojas ar mūsu iepriekšējo piemēru:
ACTIONSCRIPT:
class GThing {
// myName is typed to String:
var myName:String = "gMan";
// getGreeting returns a String
// the parameter p_salutation is a String
function getGreeting(p_salutation:String):String {
return p_salutation+" "+myName;
}
}
|
Tad FLA:
ACTIONSCRIPT:
// myG is a GThing
var myG:GThing = new GThing();
trace(myG.getGreeting("Cheers"));
// traces "Cheers gMan"
// We could cause a compiler error with:
var myG:GThing = new GThing();
trace(myG.getGreeting(true));
// error, type mismatch - Boolean != String
|
Svarīga piezīme par šo piemēru: lai lietotu striktu tipu noteikšanu, jums jādeklarē mainīgie ar var. Jūs varat redzēt to FLA koda pirmajā rindā.
Atceraties, tipa pārbaude notiek tikai kompilācijas laikā - izpildes laikā ārējais SWF joprojām var iespraust String jūsu GThing tipa mainīgajā (kaut kas tajā ir ļoti nepareizi).
Un neaizmirstiet, tā ir tikai aisberga virsotne... lai iegūtu visas pikantās detaļas, jums jāpieliek jūsu neķītrās roķeles gaidāmajai grāmatai „Flash MX 2004 Demystified” no Macromedia Press.
---