2009-10-16 13 views
5

Come si definiscono modelli simili a C++ in AS3 ?; Ho una classe map (array 2d) che voglio riutilizzare in tutti i progetti, ma i dati della cella sono una classe diversa a seconda del progetto o dell'implementazione;Modelli per AS3 (come C++)

Ci sono un sacco di altri motivi per quanto riguarda la condivisione di codice attraversato diverse implementazioni, ma mi auguro per somthing come:

map = new MyMap<MyCell>(); 

Non importa se si tratta di Flash 10 solo :-p

Cheers, Chris

risposta

9

Non esistono modelli, ma la digitazione dinamica e l'utilizzo di classi come valori potrebbero essere sufficienti per i propri scopi.

È possibile creare una classe che accetta una classe e la memorizza come variabile di istanza.

class MyMap { 
var myClass:Class; 

function MyMap(c:Class){ 
    myClass = c; 
} 
} 

E poi si nutrono della classe ad esso ...

map = new MyMap(MyCell); 

E poi nei metodi, è possibile fare riferimento a tale classe.

// Inside MyMap somewhere 
var someWhatever:Object = new myClass(); 
// or 
var someWhatever:Object = Object(myClass).someCachingSchemeStaticMethod(); 
// or whatever. 
+0

Ah ah, perfetto :-D –

5

Non è possibile creare classi template personalizzate. L'unico che hai in tutto AS3 è Vector.

C'è uno feature request aperto per lo stesso su JIRA. Sentiti libero di andare avanti.