OOP4AS2#4: Dinamiskās klases

Grant Skinner. OOP4AS2#4: Dynamic classes

Manas rakstu sērijas Object Oriented Programming with ActionScript 2.0 ceturtā daļa veltīta dinamiskjām klasēm - samērā vienkāršs temats, bet tuvākas iepazīšanas vērts, lai izvairītos no vilšanās.

Vēlreiz, ja neesat lasījuši iepriekšējos rakstu, jums vajadzētu to izdarīt, jo tie visi balstās viens uz otra. Ja jūs vēlaties visas aizkulišu detaļas, jums jāiegādājas grāmata „FlashMX 2004 Demystified”, kas ir gaidāma no Macromedia Press.

Pēc noklusējuma FlashMX 2004 ActionScript2 kompilātors neļaus jums pievienot jaunas īpašības vai metodes klases instancēm. Tāda mēģinājuma sekas būs komilātora kļuda.

Piemēram, ja mēs turpinātu kodu no iepriekšējā piemēra (izmantojot GThing klasi) un mēģinātu pievienot GThing instancei īpašību FLA failā tādā veidā:

ACTIONSCRIPT:
myG:GThing = new GThing("superman");
myG.outift = "tights'n'cape";

Mēs saskartos ar šādu kompilātora kļudu:

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 2: There is no property with the name 'outfit'.

Vēlreiz, tas ir tikai kompilātora uzspiests un ir viegli apejams, bet tas ir jauks atgādinājums pielietot labu OOP praktiku.

Teiksim jūs vēlaties radīt klasi, kas ļauj jums pievienot elementus tās instancēm neradot kļūdas. To sauc par dinamisko klasi, kas tiek apzīmēta ar prefiksu klases nosaukumam dynamic.

Piemērs:

ACTIONSCRIPT:
dynamic class GThing {
        var myName:String;
        function getGreeting(p_salutation:String):String {
                return p_salutation+" "+myName;
        }
        function GThing(p_myName) {
                myName = p_myName;
        }
}

Tagad, ja kompilēsiet FLA vēlreiz, tas notiks neradot kompilātora kļūdu.

---
  1. Klases un instances
  2. Klases elementi
  3. Konstuktori
  4. Dinamiskās klases
  5. Mantojamība (extends un super)
  6. Privātie elementi