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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 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

Старый 05.04.2002, 17:15
DeliMIter вне форума Посмотреть профиль Отправить личное сообщение для DeliMIter Найти все сообщения от DeliMIter
  № 2  
DeliMIter
некрофил
 
Аватар для DeliMIter

Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
Мракобесие. Самый простой выход это прописать функции для объекта (не для прототипа), а потом делать эддпроперти. Можно извратнуться

this.addProperty("_prop", getProp = function() {...code...}, setProp = function(newValue) {...code...});

У меня все работает именно по этой схеме - как часики. Детские. Которые роняли много раз.

Шутка :))) Все прекрасно работает.
__________________
...убивать людей не удовольствия ради, но для еды.

Старый 07.04.2002, 20:46
Sveta вне форума Посмотреть профиль Отправить личное сообщение для Sveta Найти все сообщения от Sveta
  № 3  
Sveta
 
Аватар для Sveta

Регистрация: Jan 2001
Адрес: временно Москва
Сообщений: 1,116
Отправить сообщение для Sveta с помощью ICQ
Звиняйте, шо лезу в сей заумный топик. =) Э.... товарищ 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, но какой-то подозрительный!
----------------

Старый 08.04.2002, 12:30
Lis вне форума Посмотреть профиль Отправить личное сообщение для Lis Найти все сообщения от Lis
  № 4  
Lis

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

У меня видать затмение мозгов было. У меня все варианты заработали... Но все равно всем спасибо.
__________________
Lis

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

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

Старый 09.04.2002, 10:16
DeliMIter вне форума Посмотреть профиль Отправить личное сообщение для DeliMIter Найти все сообщения от DeliMIter
  № 6  
DeliMIter
некрофил
 
Аватар для DeliMIter

Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
2john

Сперва я тоже смеялся. Теперь я уже даже смеяться не могу...
__________________
...убивать людей не удовольствия ради, но для еды.

Старый 09.04.2002, 10:28
Lis вне форума Посмотреть профиль Отправить личное сообщение для Lis Найти все сообщения от Lis
  № 7  
Lis

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

В смысле смеялся?
__________________
Lis

Старый 10.04.2002, 15:05
Papa Karlo вне форума Посмотреть профиль Отправить личное сообщение для Papa Karlo Найти все сообщения от Papa Karlo
  № 8  
Papa Karlo
 
Аватар для Papa Karlo

Регистрация: Jan 2002
Сообщений: 480
Отправить сообщение для Papa Karlo с помощью ICQ
Код:
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);
Мдя, у меня тоже созрел вопрос - к чему такие конструкции (не настолько примитивные, конечно), если можно быть проще ?

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

Регистрация: 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__ вообще ... нецензурщина сплошная, да и глючит.

Короче, не нужно пугаться.

Старый 10.04.2002, 17:14
Papa Karlo вне форума Посмотреть профиль Отправить личное сообщение для Papa Karlo Найти все сообщения от Papa Karlo
  № 10  
Papa Karlo
 
Аватар для Papa Karlo

Регистрация: Jan 2002
Сообщений: 480
Отправить сообщение для Papa Karlo с помощью ICQ
Спасибо, буду стараться не пугаться, что пока не очень получается , а рег.класс - вещь, об этом даже я стал смутно догадыватсья...
зы, для отправки уже нажимаю ctrl+enter

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

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

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


 


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


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