Показать сообщение отдельно
Старый 05.04.2002, 12:07
Lis вне форума Посмотреть профиль Отправить личное сообщение для Lis Найти все сообщения от Lis
  № 1  
Lis

Регистрация: May 2000
Адрес: Saint-Petersburg
Сообщений: 45
Отправить сообщение для Lis с помощью Skype™
По умолчанию роблемы addProperty при линковании

Я не перестаю удивляться макромедии. На самом взлете мне руки подрезали =((
Короче. Вопрос к спецам, кто уже успел ковырять FlashMX
Создаю мувик, проставляю Linkage sttings и именую мой мувик... Короче все по хелпу. Далее пишу в первом фрейме... ну блин, не дураки смотрите, спецам все понятно будет:

Код:
function myUIItemClass()
{
      this.foo = function () { trace("I'm called!"); };
}
myUIItemClass.prototype = new MovieClip();
Object.registerClass( "myUIItemSymbol", myUIItemClass);
Итак я создал мувик и связал его с классом(дополнил мувик методами и пропертями класса).
Далее я наткнулся (наткнулся я с самого начала вообще-то) что дескать можно создавать типа пропертей у которых есть хэндлеры на запись и на чтение(ну все по взрослому). Ан нет, сказал мне флеш после добавления инструкции в тело класса:
Код:
   this.addProperty( "myValue", this.GetValue, this.SetValue );
Разумеется что я дописал хендлеры:
Код:
myUIItemClass.prototype.GetValue = function() {...}
myUIItemClass.prototype.SetValue = function( iValueToSet ) {...}
Note! Сейчас пример я пишу по памяти вчерашней, так что не надо искать в моих примерах опечатки. Я вам скажу сразу что они могут быть и наверняка они есть...

Короче, функция addProperty вообще то возвращает результат добавления такой проперти в виде true/false. Так вот в таком виде она стопроцентно возвращает false (типа иди ты мальчик, со своими руками... ) Я попробовал типа не члены класса использовать в качестве хендлеров и тогда получилось, но эти хендлеры не вызыватся при операциях с этой пропертью, что печально.
Да! При просмотре переменных в окне оутпута( по Ctrl+Alt+V) я наблюдаю энто проперти с префиксом [getter/setter].
Я могу еще предположить, что эта фингня не работатет, так как происходит неявная инициализация класса, а не по стандартному типа a = new myUIItemClass() и все такое...
Хотя это странно.
Ну в общем написал что смог. Извините за сумбурное изложение, вчера слишком много матов сложил на макромедию, до сих пор передергивает...
Рад буду прочесть ваши сообраджения по этому поводу, уточню, если что то не понятно.
__________________
Lis