Tâche:AS3: La conception d'une collection personnalisée classe
Concevoir une classe qui est une collection d'autres objets et pourrait être utilisé dans pour chaque (..)
public class Cards
{
public function add($Card : Card) { ... }
}
//...
var $Cards:Cards = new Cards();
//...
for each (var $Card:Card in $Cards) {
// do things
}
Mon premier attemt devait utiliser Array classe comme parent:
public class Cards extends Array { ... }
Cela fonctionne très bien, mais Cartes classe hérite beaucoup de multidisque de méthodes publiques qui ne devraient pas être visibles dans cartes objets comme sort(), push(), foreach() , etc
Deuxième tentative était de définir la classe de base comme dynamique:
public dynamic class Cards { ... }
Cela fonctionne, mais dans ce cas je dois définir chaque classe enfant aussi dynamique aussi:
public dynamic class Cards { ... }
...
var $Cards:Cards = new Cards();
$Cards.add(new Card()); // works well
mais
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
chose intéressante est que si j'utilise tableau classe parent Je ne devrais pas définir les classes enfant comme dynamique
Alors, la question est : Est-il possible de concevoir une classe de collection en AS3 qui pourrait être utilisé dans pour chaque (...) et ne contiendra aucune méthode unnessary (comme de Tableau classe)?
Très cool! Je n'avais pas l'air de ça avant. – rfunduk
@thenduks. Je pensais la même chose quand j'ai appris l'existence du proxy. (Bien que je ne l'ai jamais vraiment utilisé dans un vrai projet, j'ai juste joué un peu avec ça). –
Oui! Exactement ce que je cherchais. Merci beaucoup! – user448564