Comme indiqué dans Extending the Array class, une classe qui étend une classe dynamique doit elle-même être dynamique sous peine de ne pas fonctionner.
public class MyArray extends Array {
// ...
}
public function test() : void {
var myArray:MyArray = new MyArray;
myArray.push({ text: "test" });
var x:Object = myArray[0];
// cause un ReferenceError "Property 0 not found and no default value provided"
}
Pour que ce code fonctionne, il faut que la définition de la classe MyArray soit:
dynamic public class MyArray extends Array {
// ...
}