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

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

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

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

to Жень Шень:
спасибо, хелп я уже изучил по вопросу watch

P.S. Я так понял что в данном методе немаловажно вернуть функцией callback значение отслеживаемой переменной иначе ей присвоится значение "undefined".

Всем спасибо...
__________________
trace("Остановите Землю, я сойду!!!");

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

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
to Mur4ik
Нет, я не в смысле "подсказать", а как бы продолжить ваш разговор про watch.
Ситация: какой-нить объект отработал свой код и вернул значение. А оно оказалось равным прежнему. А watch все равно срабатывает! То есть надо еще сверить с предыдущим значением, чтоб не вызывать функцию вхолостую.
Но, сдругой стороны этот, скажем казус, оказался мне на руку, когда надо было запускать функции из внешней оболочки - я просто переприсваивал переменной тоже значения и watch делал свое дело!

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

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
Спасибо, учту...
Так этот wanch срабатывает всякий раз при изменении переменной или все таки при присваивании ей какого либо значения...
в Хелпе написано:
"callback Функция, вызываемая, когда отслеживаемое свойство изменяется.", т.е как в данном случае понимать слово "изменяется"?
__________________
trace("Остановите Землю, я сойду!!!");

Старый 16.10.2008, 14:59
_Alex вне форума Посмотреть профиль Отправить личное сообщение для _Alex Найти все сообщения от _Alex
  № 14  
Ответить с цитированием
_Alex
 
Аватар для _Alex

Регистрация: Jul 2005
Сообщений: 26
Отправить сообщение для _Alex с помощью ICQ
Как вариант, если просто для переменной, - написать свой getter-setter.

Старый 19.11.2008, 11:24
xdoom вне форума Посмотреть профиль Отправить личное сообщение для xdoom Найти все сообщения от xdoom
  № 15  
Ответить с цитированием
xdoom
 
Аватар для xdoom

Регистрация: Apr 2008
Адрес: black sea
Сообщений: 137
Отправить сообщение для xdoom с помощью MSN Отправить сообщение для xdoom с помощью Skype™
Я не сразу понял что такое watch, пока не сделал так

Код AS1/AS2:
var BoolWatcher:Function = function (prop, oldVal, newVal) {
	if (newVal) {
		trace("включили");
	} else if (!newVal) {
		trace("выключили");
	}
	return newVal;
};
 
 
var test:Boolean = true
 
watch("test", BoolWatcher);
 
test = true
test = false
Именно это мне нужно было

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

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Привет!
А мне кажется, что правильней писать так:
Код AS1/AS2:
var myObject:Object = new Object();
myObject.test = true;
var BoolWatcher:Function = function (prop, oldVal, newVal) {
	if (newVal) {
		trace("включили");
	} else if (!newVal) {
		trace("выключили");
	}
	return newVal;
};
myObject.watch("test", BoolWatcher);
myObject.test = true;
myObject.test = false;
myObject.unwatch("test");
myObject.test = true;
myObject.test = false;
Аргументирую:
1. watch - метод объекта. А у вас не понятно к какому объекту он относится. Отсюда:
2. Метод не подсвечивается при написании (возможно это для вас несущественно), а значит не проверяется синтаксис АС. И:
3. У вас не будет работать метод unwatch. А он может быть полезен, если надо прекратить отслеживание

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

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Цитата:
Сообщение от Жень Шень Посмотреть сообщение
1. watch - метод объекта. А у вас не понятно к какому объекту он относится.
...
3. У вас не будет работать метод unwatch. А он может быть полезен, если надо прекратить отслеживание
Почему не понятно? Компилятор подставляет this автоматом. Потому можно и unwatch без проблем вызвать.

Старый 20.11.2008, 13:25
H!t вне форума Посмотреть профиль Отправить личное сообщение для H!t Найти все сообщения от H!t
  № 18  
Ответить с цитированием
H!t

Регистрация: Jul 2008
Сообщений: 7
вроде никто про методы get/set не упоминал

Код AS1/AS2:
class Team { 
 var teamName:String; 
 var teamCode:String; 
 var teamPlayers:Array = new Array(); 
 function Team(param_name:String, param_code:String) { 
 this.teamName = param_name; 
 this.teamCode = param_code; 
 } 
 function get name():String { 
 return this.teamName; 
 } 
 function set name(param_name:String):Void { 
 this.teamName = param_name; 
 } 
}

Старый 20.11.2008, 13:36
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 19  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Цитата:
Сообщение от H!t Посмотреть сообщение
вроде никто про методы get/set не упоминал
А если поднять глаза выше на несколько постов?

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

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Цитата:
Сообщение от chingachgoog Посмотреть сообщение
Потому можно и unwatch без проблем вызвать.
Так не вызывается:
Код:
test = true;
test = false;
unwatch("test")
test = true;
test = false;
// трейс:
включили
выключили
включили
выключили
C this работает.
Но, помоему, в большом коде и с несколькими watch можно запутаться.
Короче, на любителя... все это...


Последний раз редактировалось Жень Шень; 20.11.2008 в 18:43.
Создать новую тему Ответ Часовой пояс GMT +4, время: 04:30.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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