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

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

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

Регистрация: Oct 2007
Адрес: Moscow
Сообщений: 45
Отправить сообщение для chatman с помощью ICQ
По умолчанию Как программно нажать на кнопку и наоборот послать сигнал на клавиатуру?

Ситуация такая: у меня есть несколько кнопок. Каждой кнопке соответствует определённая клавиша. То есть нажимаем на клавишу - нажимается кнопка, нажимаем на кнопку - посылается событие нажатия клавиши. Я уже сделал так, что событие должно посылаться кнопке, когда нажата клавиша:
Код AS3:
public function keyDownHandler(event:KeyboardEvent){
btn1.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN));
}
Не работает. Что я делаю не так? В функцию keyDownHandler заходит, событие может и посылается, но кнопка не нажимается.

Добавлено через 5 минут
Только что попробовал - событие действительно посылается. А кнопка не нажимается.

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Кнопка и не нажмется. А почему просто в хендлерах клавиатуры и кнопки не вызывать функцию, которая будет выполнять необходимое вам действие?

Старый 27.09.2009, 00:17
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 3  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
если это SimpleButton, то можно запомнить исходные upState/downState и в обработчиках клавиатуры подменять upState кнопки на нужную - будет видимость нажатия

еще нюанс: при нажатии мышкой MOUSE_DOWN генерится один раз, а при нажатии клавиши после некоторой паузы KEY_DOWN выстреливает целой очередью

Старый 27.09.2009, 12:17
chatman вне форума Посмотреть профиль Отправить личное сообщение для chatman Посетить домашнюю страницу chatman Найти все сообщения от chatman
  № 4  
Ответить с цитированием
chatman

Регистрация: Oct 2007
Адрес: Moscow
Сообщений: 45
Отправить сообщение для chatman с помощью ICQ
Цитата:
Сообщение от alatar Посмотреть сообщение
Кнопка и не нажмется. А почему просто в хендлерах клавиатуры и кнопки не вызывать функцию, которая будет выполнять необходимое вам действие?
Вот именно потому, что кнопка не нажмётся. А так, наверное так и сделаю.
Но тем не менее. Кнопка должна нажиматься.

Делаю так при нажатии на клавишу:
Код AS3:
btn.hitTestState  = btn.downState;
Не работает.

Старый 27.09.2009, 17:45
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 5  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
а при чем здесь hitTestState
подменять надо текущее (видимое) состояние кнопки, например
Код AS3:
but.upState = but.downState;
только ссылку на "настоящий" upState перед этим надо сохранить, чтобы была возможность вернуть назад по KEY_UP

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

Теги
кнопка , событие

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

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


 


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


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