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

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

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

Регистрация: May 2011
Адрес: 0,0,0 относительно меня
Сообщений: 123
По умолчанию экранная клавиатура

Задача: написать некое подобие экранной клавиатуры, но действующей лишь в рамках одного ролика. Т.е. есть несколько полей для ввода текста и отрисованная клавиатура с кнопочками. Необходимо отлавливать нажатия кнопок клавиатуры и вносить соответствующие изменения в поля, где был фокус.
Как я вижу реализацию: хранить в отдельной переменной инфу о том, какое текствое поле последним получило фокус, и о том, на какой позиции стоит маркер в этом поле. Далее же, используя эту инфу, вносить требуемые изменения в нужном поле. Но возникают трудности с таблицей, к примеру: как определить позицию маркера в ячейке? Ну и вообще быть может кто сталкивался с подобной задачей? С какой стороны лучше подойти к этому вопросу? )

Старый 06.05.2011, 18:23
Nemez вне форума Посмотреть профиль Отправить личное сообщение для Nemez Найти все сообщения от Nemez
  № 2  
Ответить с цитированием
Nemez
 
Аватар для Nemez

Регистрация: Jun 2010
Сообщений: 189
Нарисовать кнопки, и повесить на каждую KeyboardEvent.

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

Регистрация: Oct 2009
Сообщений: 50
у текстового поля есть свойство "caretIndex" которое вернет вам позицию курсора в нем

Старый 11.05.2011, 16:04
zxcv вне форума Посмотреть профиль Отправить личное сообщение для zxcv Найти все сообщения от zxcv
  № 4  
Ответить с цитированием
zxcv
 
Аватар для zxcv

Регистрация: May 2011
Адрес: 0,0,0 относительно меня
Сообщений: 123
ага, за caretIndex спасибо! ) а как быть с таблицей? ))
а как определить, какое текстовое поле имеет фокус на момент нажатия кнопки? Фокус же автоматом будет перескакивать на кнопку. Пока придумал только завести отдельную переменную, отвечающую за поле с фокусом, и на каждое поле повесить событие входа, в котором в ту самую переменную будет передаваться ссылка на sender'a. Но если помимо полей ввода будут еще объекты на столе? в таком случае, если ткнуть в любой подобный объект, текстовое поле фокус потеряет, но в переменной останется ссылка на него, что плохо ( как быть? вешать событие входа на все объекты на столе? не круто как-то... или быть может как-то можно лишить объект возможности получать фокус?
прошу прощения за столь путанное изложение ))

Старый 11.05.2011, 16:18
woland24 вне форума Посмотреть профиль Отправить личное сообщение для woland24 Найти все сообщения от woland24
  № 5  
Ответить с цитированием
woland24

Регистрация: Oct 2009
Сообщений: 50
У текстового поля есть унаследованные события focusIn и focusOut, можете воспользоваться ими и удалять ссылку на поле когда оно теряет фокус

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

Регистрация: May 2011
Адрес: 0,0,0 относительно меня
Сообщений: 123
ага, отлично! спасибо )
а само решение задачи адекватное? )
и таки как быть с таблицами? )

Добавлено через 8 минут
аррр! ) если использовать focusOut, то при нажатии на кнопку ссылка на текстовое поле сотрется, што плохо ((

Старый 11.05.2011, 17:27
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 7  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Повесить на stage обработчик событий FocusEvent.KEY_FOCUS_CHANGE, FocusEvent.MOUSE_FOCUS_CHANGE и в нем отменять поведение по умолчание (event.preventDefault), т.о., чтобы фокус не сошел с текстового поля.
А, если само приложение потеряет системный фокус, то принудительно по событию Event.ACTIVATE, возвращать его на последнее, активное поле.

И о каких таблицах идет речь?

Старый 11.05.2011, 17:32
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 8  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
О хеш таблицах видимо
__________________
Марк Tween

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

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Что-то мне кажется что автор пытается сделать заполнение обычной себе таблицы, которую он составляет из текстфилдов, с участием таба для перемещения по ячейкам + фича экранной клавиатуры не дает жить спокойно.
__________________
Кто к нам с чем для чего - тот у нас того от того.

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

Регистрация: May 2011
Адрес: 0,0,0 относительно меня
Сообщений: 123
свойство relatedObject класса FocusEvent - решение моей проблемы ))
таблица - это DataGrid, мне интересно, как в нем получить доступ к ячейке, а особенно - к положению курсора в ней.

Добавлено через 23 часа 10 минут
никак не могу понять, как передать фокус ввода объекту:
Код AS1/AS2:
stage.focus = txt1;
поле выделяется рамкой, но фокуса ввода нет. Подскажите, пожалуйста, как передать фокус ввода?

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

Теги
экранная клавиатура

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

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


 


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


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