![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: May 2009
Сообщений: 63
|
Здравствуйте. Такая ситуация:
Существует переменная, значение которой постоянно изменяется. Необходимо каждый раз запоминать ее предыдущее значение в другой переменной... Если подробнее, то существует текстовое поле, которое слушает событие MOUSE_MOVE. Функция обработчик, возвращает индекс символа в поле, если символ есть под курсором мыши. Проблема в том, что в моем случае возвращение значения происходит постоянно, а мне необходимо, чтобы индекс каждого символа, пока курсор над ним, возвращался только один раз. Для этого я планирую сделать проверку, которая возвращает новый индекс, только если он не равен индексу того символа, на котором курсор находится. Именно для этого мне и нужно сохранять предидущее значение переменной, а вот как это организовать - я не понимаю. Последний раз редактировалось Аллиас; 26.07.2009 в 04:28. Причина: Забыл добавить в название темы знак вопроса. |
|
|||||
|
strange mood
|
1. ловим MOUSE_MOVE, получаем индекс символа под мышью (или null)
2. сравниваем с ранее записанным индексом 3. если равны - ничего не делаем, если не равны - сохраняем индекс и возвращаем его
__________________
тонкий тролль, осеянный благодатью |
|
|||||
|
Регистрация: May 2009
Сообщений: 63
|
Цитата:
Последний раз редактировалось Аллиас; 26.07.2009 в 15:34. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
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); } } } |
|
|||||
|
Регистрация: May 2009
Сообщений: 63
|
udaaff,
Спасибо большое! |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:52. |
|
|
« Предыдущая тема | Следующая тема » |
|
|