Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 05.09.2002, 15:57
Alexandre вне форума Посмотреть профиль Отправить личное сообщение для Alexandre Найти все сообщения от Alexandre
  № 1  
Alexandre

Регистрация: Mar 2001
Сообщений: 63
По умолчанию Профи, помогите разобраться в ООП в FMX

Руководствуясь хелпом в 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("ТЕКСТ");


К всеобщему удивлению ..... не ра-бо-та-ет!!!

Так в чем же делло?

Тяжко без ООП!

Старый 05.09.2002, 16:01
lexass вне форума Посмотреть профиль Отправить личное сообщение для lexass Посетить домашнюю страницу lexass Найти все сообщения от lexass
  № 2  
lexass
 
Аватар для lexass

Регистрация: Sep 2000
Адрес: SPb
Сообщений: 3,374
Отправить сообщение для lexass с помощью ICQ
По умолчанию вот тут желающих помоч много, целый день пытаю

http://flasher.ru/forum/showthread.php?threadid=36697
__________________
Старый плюс лучше новых двух.
I like RTFM
попросил - подожди - обработай
Chr(255) == '\xFF' - это про "я"
lexass


Старый 05.09.2002, 16:26
infinity вне форума Посмотреть профиль Отправить личное сообщение для infinity Найти все сообщения от infinity
  № 3  
infinity

Регистрация: Feb 2002
Адрес: Kyiv
Сообщений: 173
шо ж тут сказать? ООП в экшн скрипт - полный сакс и аут. как и сам экшн скрипт вообще
__________________
нам показалось, что это конец... но оказалось, что не казалось...

Старый 05.09.2002, 16:55
RDA вне форума Посмотреть профиль Отправить личное сообщение для RDA Посетить домашнюю страницу RDA Найти все сообщения от RDA
  № 4  
RDA
 
Аватар для RDA

Регистрация: Sep 2000
Адрес: Москва
Сообщений: 239
Ясен пень ест-но не работает!
во первых при регистрации класса функции MenuItem не существует.
во вторых с таким написанием MenuItem появится на следующий кадр после аттача.

Код:
#initclip

function MenuItem() { 
this.init(); 
} 
....

Object.registerClass("theID", MenuItem); 
#endinitclip
Вот так будет работать!

Старый 05.09.2002, 17:19
Alexandre вне форума Посмотреть профиль Отправить личное сообщение для Alexandre Найти все сообщения от Alexandre
  № 5  
Alexandre

Регистрация: Mar 2001
Сообщений: 63
А точнее?

function MenuItem()...

определяется в TimeLine'е символа, а где же регистрируется класс.

Что в основном ролике? Подробный расклад...

Старый 05.09.2002, 19:41
john вне форума Посмотреть профиль Отправить личное сообщение для john Посетить домашнюю страницу john Найти все сообщения от john
  № 6  
john
МЕГАФЛЭШЕР

Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
Странно, все у меня работает,
а ты символ библиотеки делал с линкейджем "theID"?

и по поводу описания сабклассов мувиков,

вообще хороший тон, делать это в самом элементе библиотеки (мувике) между

#initclip

....

#endinitclip

при этом код выполнятется до выполнения кода в первом кадре глобальной таймлайн и до инициализации мувиков в сцене,

в твоем случае это не критично, но тон все равно хороший,

главное чтобы конструктор был создан и класс зарегистрирован до инициализации мувиклипа.

Старый 06.09.2002, 11:55
Alexandre вне форума Посмотреть профиль Отправить личное сообщение для Alexandre Найти все сообщения от Alexandre
  № 7  
Alexandre

Регистрация: Mar 2001
Сообщений: 63
Представленный в самом начале код, действительно записан по всем (на мой взгляд) правилам.

В свойствах мувика определено имя Linkage - 'theID' и подкласс
определен в первом кадре самого мувика.

Регистрация класса происходит в TimeLine основного клипа далеко не в первых кадрах. Далее как видно из программы идет присоединение символа к основному клипу.

Тут МОМЕНТ: какое имя указывать в операторе attachMovie, имя зарегистрированного класса или 'theID'?
И еще. Я ожидаю увидеть на экране то слово, которое забиваю в методе setString.

Странное дело регистрация класса проходит успешно, а работать с экземпляром не удается.

Если возможно, раскиньте мне программку своими руками. Очень жду.

Старый 06.09.2002, 16:47
john вне форума Посмотреть профиль Отправить личное сообщение для john Посетить домашнюю страницу john Найти все сообщения от john
  № 8  
john
МЕГАФЛЭШЕР

Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
даю исходник с твоим кодом,

по ходу тестирования, обнаружил проблему с методом getString видимо был какойто не тот символ, вероятно русская буква, вместо внешне такойже не русской ...
переписал, проблема исчезла.
Вложения
Тип файла: zip testclass.zip (2.3 Кб, 66 просмотров)

Создать новую тему   Часовой пояс GMT +4, время: 03:15.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 03:15.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.