![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: Mar 2001
Сообщений: 63
|
Руководствуясь хелпом в FMX относительно ООП, я попытался создать свой экземпляр класса, а именно:
- создал символ MovieClip с именем MenuItem, а в имени LinKage написал theID. Далее в символе поставил динамическое текстовое поле с именем переменной 'txt', а в первом кадре TimeLine'а определил код: function MenuItem() { this.init(); } MenuItem.prototype = new MovieClip(); MenuItem.prototype.init = function() { this.txt = "МЕНЮ"; this.active = true; trace("Init object"); } MenuItem.prototype.onLoad = function() { trace("Clip loaded"); } MenuItem.prototype.setString = function(newLabel) { this.txt = newLabel; } MenuItem.prototype.setVal = function(newValue) { this.active = newValue; } MeniItem.prototype.getVal = function () { return this.active; } MeniItem.prototype.getString = function () { return this.txt; } - далее, возвратясь в основной ролик, в одном из кадров TimeLine'а определил код: Object.registerClass("theID", MenuItem); _root.attachMovie("theID", "Menu",2); empti.Menu.setString("ТЕКСТ"); К всеобщему удивлению ..... не ра-бо-та-ет!!! Так в чем же делло? Тяжко без ООП! |
|
|||||
|
Регистрация: Feb 2002
Адрес: Kyiv
Сообщений: 173
|
шо ж тут сказать? ООП в экшн скрипт - полный сакс и аут.
как и сам экшн скрипт вообще ![]()
__________________
нам показалось, что это конец... но оказалось, что не казалось... |
|
|||||
|
Регистрация: Sep 2000
Адрес: Москва
Сообщений: 239
|
Ясен пень ест-но не работает!
во первых при регистрации класса функции MenuItem не существует. во вторых с таким написанием MenuItem появится на следующий кадр после аттача. #initclip
function MenuItem() {
this.init();
}
....
Object.registerClass("theID", MenuItem);
#endinitclip
![]() |
|
|||||
|
Регистрация: Mar 2001
Сообщений: 63
|
А точнее?
function MenuItem()... определяется в TimeLine'е символа, а где же регистрируется класс. Что в основном ролике? Подробный расклад... |
|
|||||
|
МЕГАФЛЭШЕР
Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
|
Странно, все у меня работает,
а ты символ библиотеки делал с линкейджем "theID"? и по поводу описания сабклассов мувиков, вообще хороший тон, делать это в самом элементе библиотеки (мувике) между #initclip .... #endinitclip при этом код выполнятется до выполнения кода в первом кадре глобальной таймлайн и до инициализации мувиков в сцене, в твоем случае это не критично, но тон все равно хороший, главное чтобы конструктор был создан и класс зарегистрирован до инициализации мувиклипа. |
|
|||||
|
Регистрация: Mar 2001
Сообщений: 63
|
Представленный в самом начале код, действительно записан по всем (на мой взгляд) правилам.
В свойствах мувика определено имя Linkage - 'theID' и подкласс определен в первом кадре самого мувика. Регистрация класса происходит в TimeLine основного клипа далеко не в первых кадрах. Далее как видно из программы идет присоединение символа к основному клипу. Тут МОМЕНТ: какое имя указывать в операторе attachMovie, имя зарегистрированного класса или 'theID'? И еще. Я ожидаю увидеть на экране то слово, которое забиваю в методе setString. Странное дело регистрация класса проходит успешно, а работать с экземпляром не удается. Если возможно, раскиньте мне программку своими руками. Очень жду. |
|
|||||
|
МЕГАФЛЭШЕР
Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
|
даю исходник с твоим кодом,
по ходу тестирования, обнаружил проблему с методом getString видимо был какойто не тот символ, вероятно русская буква, вместо внешне такойже не русской ... переписал, проблема исчезла. |
![]() |
Часовой пояс GMT +4, время: 03:15. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|