![]() |
|
||||||||||
|
|||||
|
Modus ponens
|
Подскажите пожалуйста такую вещь: в принципе ведь ЮИ-компоненты от ММ наследуют UIObject? Хочу поробовать создать свой компонент. Но вот что не могу понять. При создании, компонент просит дать ему имя, после чего к этому компоненту можно будет по этому имени обращаться. Не могу понять механизм. Чему присваивается это самое имя (какой переменной)? Т.е. как сделать так, чтобы мой компонент тоже можно было создать через createClassObject() ну и удалить через destroyObject()?
Заранее спасибо.
__________________
Hell is the possibility of sanity |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Загляни в UIObject, в метод createClassObject:
function createObject(linkageName:String, id:String, depth:Number, initobj:Object):MovieClip
{
// trace("UIObject createObject: " + linkageName);
return attachMovie(linkageName, id, depth, initobj);
}
function createClassObject(className:Function, id:String, depth:Number, initobj:Object):UIObject
{
var bSubClass:Boolean = (className.symbolName == undefined);
if (bSubClass)
{
Object.registerClass(className.symbolOwner.symbolName, className);
}
var o:UIObject = UIObject(createObject(className.symbolOwner.symbolName, id, depth, initobj));
if (bSubClass)
{
Object.registerClass(className.symbolOwner.symbolName, className.symbolOwner);
}
return o;
}
А вот destroyObject: function destroyObject(id:String):Void
{
var o:MovieClip = this[id];
if (o.getDepth() < 0)
{
var dt:Array = buildDepthTable();
var i:Number = findNextAvailableDepth(0, dt, "up");
var temp = i; // COMPILER WORKAROUND
o.swapDepths(temp);
}
o.removeMovieClip();
delete this[id];
}
В общем, заглядывать внутрь полезно. |
|
|||||
|
Modus ponens
|
Хм, спасибо. Не там искал =) Почему-то решил, что это должно как-то проявлятся в кнопках\чекбоксах и т.п.
Сразу возникло 2 неприятных момента =( Я не знал, что обязательно нужно аттачить клип из библиотеки для того, чтобы создать экземпляр UIObject'a, рассчитывал програмно рисовать. Хотя, это вобщем-то поправимо... И второе, жаль, что destroyObject просто удаляет клипы... я рассчитывал, что он будет удалять и, например, все онЕнтерфреймы\интервалы запущенные во время работы компонента. А это уже хуже. Ну да ладно, буду думать. Все равно спасибо.
__________________
Hell is the possibility of sanity |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Интервалы нет, а onEnterFrame и так удаляется.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 05:55. |
|
|
« Предыдущая тема | Следующая тема » |
|
|