|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
|
Можно ли динамически изменять члены класса
Предположим, есть переменная, типа Class:
Я присваиваю ей значение некоторый класс MyClass: Далее, в коде я создаю экземпляры: В результате получаю полноценный экземпляр класса MyClass, содержащий все его поля методы. Но теперь я хочу, чтобы вновь создаваемые экземпляры обладали еще другими полями/методами. Можно ли их доопределить в самом классе MyClass? Надеюсь, понятно изъяснился. |
|
|||||
[+4 06.05.14]
|
ВОт у меня было, что то похожее
package com.roulette.elements { import flash.display.MovieClip; import flash.display.Sprite; /** * ... * @author in4core */ public class Coin extends Sprite { private static var _coin:Class; private var co:MovieClip; private var _code:String; private var _c:String; public static function registerCoin ( coin:Class ):void { _coin = coin; } public function Coin() { if (!_coin) return; co = new _coin() as MovieClip; co.mouseEnabled = this.mouseEnabled = false; co.mouseChildren = this.mouseChildren = false; addChild(co); } public function set buffer( buf:int ):void { co.gotoAndStop(buf); } public function set code ( c:String ) :void { _code = c; } public function get code ():String { return _code; } public function set text(s:String):void { co.tf.text = s; } public function get text():String { return co.tf.text; } public function set point(c:String):void { _c = c; } public function get point():String { return _c; } } }
__________________
Марк Tween |
|
|||||
Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
|
Честно говоря, не понял. И как теперь прикрутить сюда новый метод?
|
|
|||||
Silicium, какой смысл?
__________________
местонахождение |
|
|||||
Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
|
Ну изначально возник такой вопрос, когда с p2p возился. (создавал много стримов к которым привязывал клиента, было бы удобнее, если бы можно было делать так). Как водится, задачу я решил по другому, но вопрос-то остался.
|
|
|||||
т.е., Вы хотите добавить в экземпляр, какого-то класса в рантайме методы, которых там не было (т.е. они не были определены программистом в классе в момент проектирования)?
А лучше объясните саму задачу, гадать надоедает.
__________________
местонахождение Последний раз редактировалось СлаваRa; 25.02.2012 в 16:21. |
|
|||||
MovieClip -- динамический класс. Поэтому вы можете добавлять к нему свойства во время выполнения.
Создайте фабрику ваших клипов и не создавайте ВАШИ мувклипы напрямую, а получайте их сконфигурированными через фабрику. Можете создать подкласс мувклипа (тоже объявленный динамически), чтобы различать их во время выполнения. Или прочитайте про наследование прототипов. Конфигурируете мувклип, который должен стать прототипом и вперед.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ" Мои ачивки: художник-паразит. |
|
|||||
Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
|
Цитата:
Цитата:
Цитата:
|
|
|||||
Ну, чтобы была динамика, не обязательно наследоваться от movieclip-а. Мне кажется динамика здесь от лукавого (и не только здесь).
__________________
http://www.chessmax.ru |
Часовой пояс GMT +4, время: 19:25. |
|
« Предыдущая тема | Следующая тема » |
|
|