Задача:
Разработка класса, который представляет собой набор других объектов и может использоваться в для каждого (..)
public class Cards
{
public function add( $Card : Card ) { ... }
}
//...
var $Cards:Cards = new Cards();
//...
for each ( var $Card:Card in $Cards) {
// do things
}
Мой первый пользователь должен был использовать класс Array в качестве родительского:
public class Cards extends Array { ... }
Это прекрасно работает, но класс Cards наследует множество Массив открытых методов, которые не должны быть видны в Картах объектах типа sort () , push () , forEach () и т. д.
Вторая попытка заключалась в определении базового класса как dynamic :
public dynamic class Cards { ... }
Это работает, но вВ этом случае я должен определить каждый дочерний класс как динамический:
public dynamic class Cards { ... }
...
var $Cards:Cards = new Cards();
$Cards.add( new Card() ); // works well
, но
public class Player_Cards extends Cards { ... }
...
var $PlayerCards:Cards = new Player_Cards();
$PlayerCards.add( new Card() ); // error, Player_Class should be defined as dynamic too
Интересно, что если я использую Array класс как родительский. Я не должен определять дочерние классы как динамический
Итак, вопрос : возможно ли создать класс сбора в AS3, который мог бы бытьиспользуется в для каждого (...) и не будет продолжатьсяЕсть ли какие-нибудь ненужные методы (например, из Array class)?