Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Templates for AS3 (like c++)

How do I define C++-like templates in AS3?; I have a map class (2d array) that I want to re-use across projects but the cell data is a different class depending on the project or implementation;

There are a bunch of other reasons regarding sharing code accross different implementations, but I'd hope for somthing like:

map = new MyMap<MyCell>();

Doesn't matter if it's Flash 10 only :-p

Cheers, Chris

like image 219
Christopher Lightfoot Avatar asked Oct 16 '09 14:10

Christopher Lightfoot


1 Answers

There aren't templates, but dynamic typing and using classes as values might be good enough for your purposes.

You can make a class that takes a class and stores it as an instance variable.

class MyMap {
 var myClass:Class;

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

And then you feed the class to it...

map = new MyMap(MyCell); 

And then in methods, you can refer to that class.

// Inside MyMap somewhere
var someWhatever:Object = new myClass();
// or
var someWhatever:Object = Object(myClass).someCachingSchemeStaticMethod();
// or whatever.
like image 138
Jesse Millikan Avatar answered Oct 14 '22 14:10

Jesse Millikan