2010-10-16 2 views
-1

Я думаю, что заголовок должен сделать его довольно ясным. Мне было интересно, как вы можете присвоить класс объекту на сцене. Как вы могли бы сделать с помощью ActionScript:As3 - Назначить класс объекту на этапе

var objectname:ClassName = new ClassName(); 

Это позволит сделать новый объект, но текущий объект уже существует, он просто должен быть уведомлен, что это типа «ClassName», поэтому он может наследовать его свойства. Я также попытался присвоить «ClassName» в ссылке как базовый путь или имя класса. Но в обеих ситуациях я получаю сообщение об ошибке, говоря, что класс должен быть уникальным, когда я использую один и тот же класс для нескольких объектов.

Так мне нужно что-то вроде

//example exists on stage 
example.class = ClassName 

Благодарности

ответ

0

Я не думаю, что есть способ сделать именно это сделать. Но я предлагаю вам заглянуть в decorator design pattern. Идея здесь в том, что вы не меняете класс, но вы «украшаете его» большим количеством функций по мере необходимости.

Надеюсь, это поможет!

2

Я отвечу на ваш вопрос вопросом: почему вы назначаете один и тот же класс на несколько объектов?

Если вы хотите, это общее поведение для этих объектов, вы должны создать свой класс и назначить ему базовый класс для этих объектов.

+0

Я думаю о неправильном решении проблемы, я рассмотрю другое решение. Благодаря :) – omgnoseat

0

Кажется, у вас это неправильно. Вы определяете класс для того, чтобы задать определенное поведение & свойств объекта. В реальной жизни, если я хочу построить радио, я придумаю радиопроект &. Теперь, если мне понадобится несколько радиостанций, я буду использовать одну и ту же реализацию для их производства.

Если я сейчас хочу превратить свое радио в телевизор, я не могу просто сказать свое радио, эй, ты сейчас телевизор. Я могу либо заранее решить, что хочу радио/tv-объект и переключать поведение, когда это необходимо, или я могу создать новый телевизионный объект и добавить к нему функциональность радио, добавив радиокомпонент к моему телевизионному объекту.

 
var radio:Radio // your current object 

//example 1 
radio.switchToTv(); 

//example 2 
var radioTv:Tv = new Tv(radio); 
Смежные вопросы