![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2002
Адрес: Украина
Сообщений: 5
|
Как программно определить класс мувиклипа, т.е. название символа в библиотеке?
Например, мне надо зная класс одного мувиклипа из множества расположенных на сцене, заменить его на другой, соответствующий определенному классу. P.S. По имени мувиклипа этого сделать в данном случае невозможно... |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
что значит "класс мувиклипа" ?
мувиклип принадлежит 'классу' отличному от класса MovieClip только если было действие Object.registerClass для линкейджа, установленного для этого клипа в библиотеке... если речь идет именно о таких классах, то можно узнать о принадлежности объекта классу одним из вариантов: (clip.__proto__ == Class.prototype) (clip.constructor == Class) (clip instanceof Class) а название символа в библиотеке не узнать... никак. только если вписать ручками переменную с названием символа в клип Последний раз редактировалось Nox Noctis; 23.11.2002 в 20:56. |
|
|||||
|
Регистрация: Jan 2000
Адрес: BRD
Сообщений: 42
|
А это не подходит?
Object.oldRegisterClass = Object.registerClass;
Object.registeredSymbols = {};
ASSetPropFlags(Object, "registerClass", 0,7);
Object.registerClass = function(symbol, class) {
this.registeredSymbols[symbol] = class.prototype;
return this.oldRegisterClass(symbol, class);
};
Object.isSybolRegistered = function(symbol) {
return this.registeredSymbols[symbol] != undefined;
};
ASSetPropFlags(Object, "registerClass,oldRegisterClass,registeredClasses,isSybolRegistered", 7);
ASSetPropFlags(Object, "registeredClasses", 1);
__________________
Дааа, не перевелись на Руси богатыри добры-молодцы!!? Последний раз редактировалось Hirn; 30.11.2002 в 16:53. |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
это канеш круто, только похоже автор уже передумал =)
не подает признаков жизни... и потом я что-то не вижу каким образом твой код помогает решить вопрос с определением класса (холтя мы по-прежнему не знаем что все-таки хотел узнать автор :)) ) ты записываешь в registeredSymbols какой линкейдж какому прототипу соответствует... не понятно - зачем ?.. у тебя на сцене есть клип, у которого в библиотеке есть линкейдж и для которого зарегистрирован класс... как ты узнаешь линкейдж этого клипа чтобы подставить в registeredSymbols[symbol] и получить прототип ? тогда уж все проще можно сделать - клип.constructor - это ссылка на создавшую его функцию... то есть либо на функцю MovieClip, либо на функцию Какой_то_класс... клип.__proto__ - это ссылка на Какой_то_класс.prototype ... и не надо ничего городить дополнительно :) но все равно не понятно зачем... =) если так уж нужно получить имя класса, то его можно вписать в прототип класса как рид-онли свойство и оно будет наследовано всеми объектами-представителями... чего тут еще придумывать-то ? :) Последний раз редактировалось Nox Noctis; 30.11.2002 в 17:49. |
|
|||||
|
Регистрация: Oct 2002
Адрес: Украина
Сообщений: 5
|
Спасибо за ответы. Я вообще то нашел намного более простой путь в решении своей задачи чем определение класса, но почитать то что вы пишете интересно.
Извините за неопределенность вопроса - я лучше разбираюсь в Delphi & C++, чем во флеше, а там немного другая терминология, к которой я привык... А хотел я определить name символа, который задается в New Symbol или же Identifier в Linkage для размешенного на Stage Instance'а |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
Цитата:
...то есть можно, конечно, сделать тупо - переменную в клипе, которая будет содержать это имя... но по-другому получить имя _в библиотеке_ не получится. с линкейджем абсолютно то же самое. так что нужно выкручиваться по-другому... скажем, ввести определенную систему именования клдипов на сцене - чтобы, к примеру, инстанс нейм клипа содержал в себе эти сведения... если это не удобно - то что-нибудь другое придумывать... вариантов масса :) |
![]() |
Часовой пояс GMT +4, время: 10:16. |
|
|
« Предыдущая тема | Следующая тема » |
|
|