As3 - назначить класс объекту на сцене - PullRequest
0 голосов
/ 16 октября 2010

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

var objectname:ClassName = new ClassName();

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

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

//example exists on stage
example.class = ClassName

Спасибо

Ответы [ 3 ]

2 голосов
/ 17 октября 2010

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

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

0 голосов
/ 17 октября 2010

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

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

var radio:Radio // your current object

//example 1
radio.switchToTv();

//example 2
var radioTv:Tv = new Tv( radio );
0 голосов
/ 17 октября 2010

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

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

...