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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

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

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
По умолчанию Как к переменной подписать слушателя?

Как к переменной подписать слушателя?
Чтоб при ее изменении в зависимости от значения выполнялась нужная мне функция.
Т.е изменилась переменная и сразу срабатывает событие и выполняется соответствующий код...
Подскажите где копать или лучше пример наглядный с комментами.
Смотрел что есть нечто подобное в Хелпе - зовется watch(), но ничего так и не понял.
__________________
trace("Остановите Землю, я сойду!!!");

Старый 08.09.2008, 14:19
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 2  
Ответить с цитированием
qazwsx
Banned
[+5 15.02.09]
[++5 15.02.09]

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
Создаеш обьект. В нем задаеш параметр например obj.n = 0.
Вешаеш на него watch,
Код:
obj.watch('n', func, 0);
- 'n' - Строка, име обьекта на каторый повешан ватч. func - Функция каторая вызывается при изменении. 0 просто значение каторое ты задаеш func будет вызыватся каждый раз с этим значением в качестве аргумента.

Пишеш функцию
Код:
function func(arg1, arg2, arg3, arg4){};
- arg1 будет n
- arg2 будет предидуше значение obj.n
- arg3 будет новое значение obj.n
- arg4 третий аргумент из watch

Старый 08.09.2008, 14:20
marat_sa вне форума Посмотреть профиль Отправить личное сообщение для marat_sa Посетить домашнюю страницу marat_sa Найти все сообщения от marat_sa
  № 3  
Ответить с цитированием
marat_sa
 
Аватар для marat_sa

Регистрация: Nov 2006
Сообщений: 487
Отправить сообщение для marat_sa с помощью ICQ Отправить сообщение для marat_sa с помощью Skype™
Делай вызов функции в том месте кода, где изменяешь переменную...

Старый 08.09.2008, 14:34
Mur4ik вне форума Посмотреть профиль Отправить личное сообщение для Mur4ik Найти все сообщения от Mur4ik
  № 4  
Ответить с цитированием
Mur4ik
ветеран форума

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
to marat_sa:
Не всегда удобно вызывать функцию где изменяется переменная...
Например есть модальное окно, в зависимости от возвращаемого результата мне нужно вызвать определенную функцию, как дождаться изменения переменной и в том же месте вызвать нужную функцию?

to qazwsx:
Спасибо, уже немного понятней...
Вот только еще момент
- arg1 будет n и - arg3 будет новое значение obj.n т.е они равны?
зачем два одинаковых параметра? или arg1 это имя переменной?
__________________
trace("Остановите Землю, я сойду!!!");

Старый 08.09.2008, 15:10
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 5  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
неужели так трудно прочитать про watch в русском хелпе?

Старый 08.09.2008, 16:06
Mur4ik вне форума Посмотреть профиль Отправить личное сообщение для Mur4ik Найти все сообщения от Mur4ik
  № 6  
Ответить с цитированием
Mur4ik
ветеран форума

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
Цитата:
Сообщение от chingachgoog Посмотреть сообщение
неужели так трудно прочитать про watch в русском хелпе?
Не понимаю я таких ответов....
Если нечего добавить по теме, то лучше вообще ничего не писАть!

Вопрос же не ставился конкретно по watch...
это как возможный вариант, и спасибо qazwsx что доступно разжевал именно этот метод...

Может вообще на форуме создать правило - типа "то что есть в хелпе и Гугле даже не пытаться спрашивать - иначе растрел!"
__________________
trace("Остановите Землю, я сойду!!!");

Старый 08.09.2008, 17:19
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 7  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
А про callback кто спрашивал?

Цитата:
Сообщение от Mur4ik Посмотреть сообщение
- arg1 будет n и - arg3 будет новое значение obj.n т.е они равны?
зачем два одинаковых параметра? или arg1 это имя переменной?
Ответа нет в хелпе что-ли? Или ответ qazwsx более подробный, чем в хелпе?

Старый 08.09.2008, 17:46
Mur4ik вне форума Посмотреть профиль Отправить личное сообщение для Mur4ik Найти все сообщения от Mur4ik
  № 8  
Ответить с цитированием
Mur4ik
ветеран форума

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
to chingachgoog:
при всем уважении, но спрашивал то я не у Вас...
или Вы в секретарях числитесь у qazwsx?... в следующий раз буду знать, чтоб к нему обратиться я это через Вас буду делать.

Если кроме watch больше способов нет отследить изменение переменной,
то всем спасибо, уже разобрался - вопрос можно считать закрытым.
__________________
trace("Остановите Землю, я сойду!!!");

Старый 08.09.2008, 18:25
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 9  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Mur4ik, извините, я вовсе не думал вас не только поучать, но и даже вообще как-то осуждать. Мой вопрос был более исследовательский: в данном вопросе русский хелп настолько запутан?

Старый 08.09.2008, 18:42
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 10  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Привет!
Тоже как-то давно разбирался с watch.
Вот выдержка из хэлпа: "Метод; регистрирует обработчик события, вызываемый в случае, когда свойство объекта изменяется"
В приведеном коде в последней строке значение просто переприсвоино, но watch срабатывает.
Код:
var myObject:Object = new Object();
myObject.speed = 0;
var speedWatcher:Function = function (prop, oldVal, newVal, speedLimit) {
	if (newVal>speedLimit) {
		trace("Вы превышаете.");
	} else {
		trace("Вы не превышаете.");
	}
	return newVal;
};
myObject.watch("speed", speedWatcher, 55);
myObject.speed = 54;
myObject.speed = 57;
myObject.speed = 57;
Вышесказанное написано на правах размышления.

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

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

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


 


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


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