2010-10-16 3 views
-1

Je pense que le titre devrait le rendre clair. Je me demandais comment vous pouvez assigner une classe à un objet sur scène. Comme vous le feriez avec actionscript:As3 - Assigner la classe à l'objet sur scène

var objectname:ClassName = new ClassName(); 

Cela ferait un nouvel objet, mais l'objet courant existe déjà, il a juste besoin d'être informé qu'il est du type « ClassName » il peut hériter ses propriétés. J'ai également essayé d'affecter le "ClassName" dans la liaison comme le chemin de base ou le nom de la classe. Mais dans les deux cas, je reçois une erreur disant que la classe doit être unique lorsque j'utilise la même classe sur plusieurs objets.

donc je besoin de quelque chose comme

//example exists on stage 
example.class = ClassName 

Merci

Répondre

0

Je ne pense pas qu'il y ait un moyen de le faire faire. Mais je vous suggère de regarder dans le decorator design pattern L'idée ici est que vous ne changez pas la classe, mais vous "décorer" avec plus de fonctions au besoin.

Espérons que cela aide!

2

Je vais répondre à votre question par une question: pourquoi attribuez-vous la même classe sur plusieurs objets?

Si ce que vous voulez est un comportement commun pour ces objets, vous devez créer votre classe et lui assigner la classe de base sur ces objets.

+0

Je pense à la mauvaise solution pour résoudre ce problème, je vais regarder dans une autre solution. Merci :) – omgnoseat

0

Vous semblez avoir ceci à l'envers. Vous définissez une classe afin de définir des propriétés de comportement spécifiques & pour un objet. Dans un exemple réel, si je veux construire une radio, je vais mettre en place un design radio &. Maintenant, si j'ai besoin de plusieurs radios, j'utiliserai la même implémentation pour les fabriquer.

Si je souhaite maintenant transformer ma radio en télé, je ne peux pas simplement dire à ma radio, hé, vous êtes un téléviseur maintenant. Je peux soit décider à l'avance que je veux un objet radio/tv et changer de comportement chaque fois que nécessaire ou je peux créer un nouvel objet TV et y ajouter la fonctionnalité radio en ajoutant un composant radio à mon objet TV.

 
var radio:Radio // your current object 

//example 1 
radio.switchToTv(); 

//example 2 
var radioTv:Tv = new Tv(radio); 
Questions connexes