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

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

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

Регистрация: May 2009
Сообщений: 63
По умолчанию Логика: Как сохранить предыдущее значение изменяющейся переменной ?

Здравствуйте. Такая ситуация:

Существует переменная, значение которой постоянно изменяется. Необходимо каждый раз запоминать ее предыдущее значение в другой переменной...

Если подробнее, то существует текстовое поле, которое слушает событие MOUSE_MOVE. Функция обработчик, возвращает индекс символа в поле, если символ есть под курсором мыши.

Проблема в том, что в моем случае возвращение значения происходит постоянно, а мне необходимо, чтобы индекс каждого символа, пока курсор над ним, возвращался только один раз.

Для этого я планирую сделать проверку, которая возвращает новый индекс, только если он не равен индексу того символа, на котором курсор находится.
Именно для этого мне и нужно сохранять предидущее значение переменной, а вот как это организовать - я не понимаю.


Последний раз редактировалось Аллиас; 26.07.2009 в 04:28. Причина: Забыл добавить в название темы знак вопроса.
Старый 26.07.2009, 04:44
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 2  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
1. ловим MOUSE_MOVE, получаем индекс символа под мышью (или null)
2. сравниваем с ранее записанным индексом
3. если равны - ничего не делаем, если не равны - сохраняем индекс и возвращаем его
__________________
тонкий тролль, осеянный благодатью

Старый 26.07.2009, 13:35
Аллиас вне форума Посмотреть профиль Отправить личное сообщение для Аллиас Найти все сообщения от Аллиас
  № 3  
Ответить с цитированием
Аллиас
 
Аватар для Аллиас

Регистрация: May 2009
Сообщений: 63
Цитата:
Сообщение от GAIKER
1. ловим MOUSE_MOVE, получаем индекс символа под мышью (или null)
2. сравниваем с ранее записанным индексом
3. если равны - ничего не делаем, если не равны - сохраняем индекс и возвращаем его
Вот это то я как раз прекрасно понимаю, мне не понятно как именно сохранить предыдущий индекс.


Последний раз редактировалось Аллиас; 26.07.2009 в 15:34.
Старый 26.07.2009, 15:25
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код AS3:
package
{
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;
 
	public class Main extends Sprite
	{
		public function Main()
		{
			super();
 
			createChilden();
		}
 
		private var textField:TextField;
 
		private var lastIndex:int;
 
		private function textField_mouseMoveHandler(event:MouseEvent):void
		{
			var currentIndex:int = textField.getCharIndexAtPoint(textField.mouseX, textField.mouseY);
 
			if (lastIndex != currentIndex)
			{
				lastIndex = currentIndex;
 
				trace(lastIndex);
			}
 
		}
 
		private function createChilden():void
		{
			textField = new TextField();
			textField.text = "some text asdfasdfasdfasdfasdfasdfasdfasdfasdf";
			textField.autoSize = TextFieldAutoSize.LEFT;
			textField.border = true;
			addChild(textField);
 
			textField.addEventListener(MouseEvent.MOUSE_MOVE, textField_mouseMoveHandler);
		}
	}
}

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

Регистрация: May 2009
Сообщений: 63
udaaff,

Спасибо большое!

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

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

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


 


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


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