![]() |
|
||||||||||
|
|||||
|
Я не перестаю удивляться макромедии. На самом взлете мне руки подрезали =((
Короче. Вопрос к спецам, кто уже успел ковырять FlashMX ![]() Создаю мувик, проставляю Linkage sttings и именую мой мувик... Короче все по хелпу. Далее пишу в первом фрейме... ну блин, не дураки смотрите, спецам все понятно будет: function myUIItemClass()
{
this.foo = function () { trace("I'm called!"); };
}
myUIItemClass.prototype = new MovieClip();
Object.registerClass( "myUIItemSymbol", myUIItemClass);
Далее я наткнулся (наткнулся я с самого начала вообще-то) что дескать можно создавать типа пропертей у которых есть хэндлеры на запись и на чтение(ну все по взрослому). Ан нет, сказал мне флеш после добавления инструкции в тело класса: Разумеется что я дописал хендлеры: myUIItemClass.prototype.GetValue = function() {...}
myUIItemClass.prototype.SetValue = function( iValueToSet ) {...}
Короче, функция addProperty вообще то возвращает результат добавления такой проперти в виде true/false. Так вот в таком виде она стопроцентно возвращает false (типа иди ты мальчик, со своими руками... ) Я попробовал типа не члены класса использовать в качестве хендлеров и тогда получилось, но эти хендлеры не вызыватся при операциях с этой пропертью, что печально. Да! При просмотре переменных в окне оутпута( по Ctrl+Alt+V) я наблюдаю энто проперти с префиксом [getter/setter]. Я могу еще предположить, что эта фингня не работатет, так как происходит неявная инициализация класса, а не по стандартному типа a = new myUIItemClass() и все такое... Хотя это странно. Ну в общем написал что смог. Извините за сумбурное изложение, вчера слишком много матов сложил на макромедию, до сих пор передергивает... Рад буду прочесть ваши сообраджения по этому поводу, уточню, если что то не понятно.
__________________
Lis |
|
|||||
|
некрофил
Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
|
Мракобесие. Самый простой выход это прописать функции для объекта (не для прототипа), а потом делать эддпроперти. Можно извратнуться
this.addProperty("_prop", getProp = function() {...code...}, setProp = function(newValue) {...code...}); У меня все работает именно по этой схеме - как часики. Детские. Которые роняли много раз. Шутка :))) Все прекрасно работает.
__________________
...убивать людей не удовольствия ради, но для еды. |
|
|||||
|
Звиняйте, шо лезу в сей заумный топик. =) Э.... товарищ Lis, нияк не вразумию що ж вже у вас не працуе. Отось може надо було хиба добавити объект на сцену, бо може
ца погана макромедия )) нияк не може побачити шо ж вы робите?------------code------------- function a() { this._x=this._y=100 this.addProperty( "c", this.g, this.s ); trace(this.addProperty( "c", this.g, this.s))//true this.c=2//передаваемый параметр b в функцию s this.c1=this.c//это значение будет равно результату функции g }; a.prototype = new MovieClip(); a.prototype.g=function(){ this.m=this.n*4 trace("get"+this.m) return this.m} a.prototype.s=function(b){ this.n=2*b trace("set"+this.n) } Object.registerClass("targets", a); attachMovie("targets","k",1)//о ця мала хендерлина trace(k.c1)//все работает. ------------------------------ Звиняйте за мои дурни догадки у сём сюжете. Дык только нияк не вразумию, на шо ж нам треба ца чудна addProperty, коли можна и так вызывать функцию? И, плиз, намалюйте мени шо ж це таке "хендлеры на чтение и запись" и на кой вони здатни? Бо догадываюсь, шо це страшна сила, та нияк не врозумию на шо. На хелп чур не посылать, бо буржуйска мова мени неподвластна. ЗЫ Lis: Ще пробачьте мени у личному контексту, шо влезла сюди так зненецька=)
__________________
----------------- Глава, последняя в этой истории: Добро побеждает Зло и наступает Happy End, но какой-то подозрительный! ---------------- |
|
|||||
|
У меня видать затмение мозгов было. У меня все варианты заработали... Но все равно всем спасибо.
__________________
Lis |
|
|||||
|
МЕГАФЛЭШЕР
Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
|
2Sveta
!!!!! |
|
|||||
|
некрофил
Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
|
2john
Сперва я тоже смеялся. Теперь я уже даже смеяться не могу...
__________________
...убивать людей не удовольствия ради, но для еды. |
|
|||||
|
В смысле смеялся?
__________________
Lis |
|
|||||
function Bu(){
this.addProperty("prop",this.getFunkc,this.setFunkc);
this.prop=3;
};
Bu.prototype.getFunkc=function(){
return 123;
};
Bu.prototype.setFunkc=function(value){
this.temp=10*value;
};
Object.registerClass("box",Bu);
![]() |
|
|||||
|
МЕГАФЛЭШЕР
Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
|
2 Papa Karlo
Может "усложняется" начинка объектов, но упрощается их интерфейс. попробуй например сделать this._currentframe++ а со своим _frame++ можно,
MovieClip.prototype.addProperty("_frame", function ()
{
//trace("GETTER: "+this._currentframe)
return this._currentframe;
}, function (f)
{
//trace("SETTER: "+f)
this.gotoAndStop(f);
});
mc.stop();
a_btn.onRelease = function () {
mc._frame++;
}
единственный вариант это делать в хердлере (onClipEvent(load)) что заставляет делать визуально. Асоциировать созданный клип с классом через __proto__ вообще ... нецензурщина сплошная, да и глючит. Короче, не нужно пугаться. |
|
|||||
|
Спасибо, буду стараться не пугаться, что пока не очень получается
, а рег.класс - вещь, об этом даже я стал смутно догадыватсья...зы, для отправки уже нажимаю ctrl+enter ![]() |
![]() |
Часовой пояс GMT +4, время: 12:19. |
|
|
« Предыдущая тема | Следующая тема » |
|
|