Просмотр полной версии : привязка объекта на сцене к кастомному классу без linkage
Добрый вечер.
Подскажите, можно как-то мувиклип, изначально лежащий на сцене, сделать экземпляром кастомного класса? При этом в библиотеке в линкейдже его класс никак не определен.
Я создаю ссылку на свой класс:
var ClassRef:Class = getDefinitionByName("MyClass") as Class;
Но дальше ничего не получается..вызывать конструктор ClassRef не имеет смысла, объект уже есть, он лежит на сцене..можно в принципе сделать его экземпляром класса ClassRef?
Не очень понятен вопрос. На первый вопрос ответ очевиден — нет. А дальше я что-то не понял, если тебе нужно создать ещё один экземпляр этого клипа, то юзай constructor. Или делай композицию.
не, мне не нужно создавать больше экземпляров..Они все отрисованы на сцене. Просто их больше 200 штук)).. и прописывать в библиотеке каждому класс..я подумал может как то программно можно..
Зачем прописывать? getChildAt? getChildByName?
Зачем прописывать? getChildAt? getChildByName?
естественно, я так и делаю, но сделать их экземплярами нужного класса не удается
А это невозможно. Тут можно работать лишь используя композицию.
ну вот на примере с одним экземпляром....я делал так
var ref:myClass
var ClassRef:Class = getDefinitionByName("myClass") as Class;
trace(getChildByName('obj') as myClass); // null
понял..невозможно.
Тогда приходит в голову создать экземпляр ClassRef и параметром передать клип, чтоб в классе уже с ним работать
var instance:ClassRef = new ClassRef (getChildByName('obj'))
А поясни, как использовать композицию тут?
Написать класс, который в конструкторе принимает ссылку на клип. Этот класс реализует необходимый тебе функционал и управляет клипом.
ну так вроде я это и сделал...
спасибо
Других вариантов решения, кроме утопичных, вроде перемалывания байт-кода я не вижу. Так что вариант с композицией самый лучший в данной ситуации.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.