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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 30.09.2009, 15:39
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
слушатель это метод, который вызывается при опреленных условиях
в данном случае когда i==0
чтобы отследить это, i должна быть геттером/сеттером
простейший случай - собственный метод: в сеттере проверяем, вызываем метод
Код AS1/AS2:
class PropWatcher
{
	private var _i:Number;
 
	private function onZero()
	{
		trace( "onZero listener "  );
	}
 
	public function get i():Number { return _i; }
	public function set i(value:Number):Void 
	{
		if (_i != value) 
		{
			_i = value;
			if (_i == 0) onZero()
 
		}
	}
}
///////////////////////
var test:PropWatcher = new PropWatcher();
test.i = 0;

если нужно вызывать одноименные обрабочики в других объектах, то можно воспользоваться методами AsBroadcaster (добавив их к экземпляру через AsBroadcaster.initialize), тогда у всех объектов, подписанных на прослушку экземпляра PropWatcher срабоатет метод onZero
Код AS1/AS2:
class PropWatcher
{
	private var _i:Number;
	private var broadcastMessage:Function;
	public var addListener:Function;
	public var  removeListener:Function;
 
	public function PropWatcher() 
	{
		AsBroadcaster.initialize(this);
	}
 
	public function get i():Number { return _i; }
 
	public function set i(value:Number):Void 
	{
		if (_i != value) 
		{
			_i = value;
			if (_i == 0) broadcastMessage("onZero");
 
		}
	}
 
}
//////////////////////////////////////
var test:PropWatcher = new PropWatcher();
test.addListener(this);
test.i = 0;
 
function onZero()
{
	trace( "onZero listener "  );
}
ну и наконец можно посмотреть в mx.events.EventDispatcher
в целом схема такая же как и с AsBroadcaster, но подписывается на прослушку не объект, имеющий одноименный событию метод, а вообще любой метод, что бывает удобнее

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

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

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


 


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


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