2009-10-16 11 views
5

¿Cómo se definen las plantillas similares a C++ en AS3 ?; Tengo una clase de mapa (matriz 2d) que quiero reutilizar en todos los proyectos, pero los datos de la celda son de una clase diferente según el proyecto o la implementación;Plantillas para AS3 (como C++)

Hay un montón de otras razones relativas a compartir código cruzando diferentes implementaciones, pero yo espero por algo como:

map = new MyMap<MyCell>(); 

No importa si se trata de flash 10 sólo :-p

Cheers, Chris

Respuesta

9

No hay plantillas, pero el tipado dinámico y el uso de clases como valores pueden ser lo suficientemente buenos para sus propósitos.

Puede hacer una clase que tome una clase y la almacene como una variable de instancia.

class MyMap { 
var myClass:Class; 

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

Y entonces usted alimenta a la clase a la que ...

map = new MyMap(MyCell); 

Y luego, en los métodos, puede hacer referencia a esa clase.

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

Ah ah, perfecto :-D –

5

No puede crear sus propias clases de plantilla. El único que tiene en todo AS3 es Vector.

Hay un abierto feature request para el mismo en JIRA. Siéntase libre de votar.

Cuestiones relacionadas