![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Добрый день (вечер);
Подскажите пожалуйста, существует ли возможность выяснить системный идентификатор объекта? Например, при создание var MC:MovieClip = new MovieClip(); значение свойства MC.name - компилятор генерирует автоматически, а как выяснить "имя" у не визуального объекта? Предположим такую ситуацию: var timer: Time = new Timer(); как извесно не имеет свойства timer.name! |
|
|||||
|
name вовсе не системный идентификатор объекта, просто свойство
если его нет, то выяснить не судьба если нужно зачем-то, то ничто не мешает создать var timer:MyTimer = new MyTimer(500); trace( "timer : " + timer.name ); //////////////////// public class MyTimer extends Timer { private static var counter:int = 0; public var name:String; public function MyTimer(delay:Number, repeatCount:int = 0) { super(delay, repeatCount); MyTimer.counter++; this.name = "timer" + MyTimer.counter; } } |
|
|||||
|
Ну да, разве что переопределение класса... Как бы изначально это было нужно для того, что бы все листенеры событий разных объектов запихнуть в один класс (в Object). Получилось бы универсальная библиотека событий объектов в проекте. Регистрация объекта в хранилище имела такой вид:
var userObject: MovieClip = new MovieClip(); var registerName: String = getQualifiedClassName(userObject)+'__'+userObject.name; var obj: Array = new Array(); obj[registerName]=new ExtendedEventDispatcher(userObject); В итоге, что бы отписать все мувиклипы в моем проекте от событий было достаточно одной строчки, ...в когда я решил в obj еще и timer впихнуть, то проблема оказалась в том, что я не могу хранить его в элементе массива потому как я его потом не смогу найти по имени. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:35. |
|
|
« Предыдущая тема | Следующая тема » |
|
|