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

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

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

Регистрация: Sep 2008
Сообщений: 158
По умолчанию кнопка на клавиатуре нажимает кнопку на сцене

Приветствую!

Помогите пожалуйста с проблемой.

На сцене есть кнопка и объект. При нажатии на эту кнопку мышкой кнопка меняет цвет (через внутренний "Down") и объект выполняет какие то действия.

Как сделать чтобы при нажатии кнопки на клавиатуре (например кнопку "UP") нажималась кнопка на сцене?

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

Регистрация: Nov 2008
Адрес: Атланта
Сообщений: 1,271
через onKeyUp, в хелпе есть пример
__________________
Пока я жив, Вы горем обеспечены

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

Регистрация: Sep 2008
Сообщений: 158
Такого примера я не вижу.

Ещё раз сокращённо:

Нужно чтобы кнопка на сцене нажималась и мышкой и кнопкой клавиатуры

Старый 01.12.2009, 23:34
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Естественно, всех выкрутасов хелп не может предусмотреть, да и не должен, комбинировать нужно, программировать.
Пишите одну функцию, которая должна что-то делать, и назначаете ее исполнение на onKeyDown клавиши и onPress символа-кнопки:
Код AS1/AS2:
function doIt () {
	//действие
}
 
btn.onPress = doIt; //кнопка сцены - прижата, но не отпущена
 
var keyListener_obj:Object = new Object();
keyListener_obj.onKeyDown = function() { //кнопка клавиатуры - - прижата, но не отпущена
    if (Key.getCode() == Key.UP) { //ловит конкретно клавишу UP
		doIt ();
    }
};
Key.addListener(keyListener_obj);


Последний раз редактировалось mooncar; 01.12.2009 в 23:50.
Старый 01.12.2009, 23:51
veles2008 вне форума Посмотреть профиль Отправить личное сообщение для veles2008 Найти все сообщения от veles2008
  № 5  
Ответить с цитированием
veles2008
 
Аватар для veles2008

Регистрация: Sep 2008
Сообщений: 158
Большое спасибо.

А я там ещё спрашивал:
Когда нажимаем мышкой на кнопку срабатывает её внутренний "Down" . Это как то можно добавить?

И ещё в данном коде нажимаю на кнопку клавиатуры и действие выполняется пока не отпущу. А можно как то так чтоб нажал на кнопку клавиатуры и действие выполнилось 1 раз и если держать действие не повторялось, а повторилось только при повторном нажатии?

Старый 01.12.2009, 23:57
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от veles2008 Посмотреть сообщение
И ещё в данном коде нажимаю на кнопку клавиатуры и действие выполняется пока не отпущу. А можно как то так чтоб нажал на кнопку клавиатуры и действие выполнилось 1 раз и если держать действие не повторялось, а повторилось только при повторном нажатии?
Замените onKeyDown на onKeyUp, и вместо onPress поставьте onRelease - тогда на отпускание будет срабатывать и там и там.

Цитата:
Сообщение от veles2008 Посмотреть сообщение
Когда нажимаем мышкой на кнопку срабатывает её внутренний "Down" . Это как то можно добавить?
Надо поколдовать:
1. Заменяете кнопку-Button на кнопку - MovieClip, в нем два кадра: обычное и нажатое состояние. В каждом кадре (или только в первом) пропишите stop();
2. Вносите изменения в код, чтобы правильно анимировать кнопку через btn.gotoAndStop() на нужный кадр. Разберитесь там с событиями клавиатуры сами , поэкспериментируйте.


Последний раз редактировалось mooncar; 02.12.2009 в 00:05.
Старый 02.12.2009, 00:07
veles2008 вне форума Посмотреть профиль Отправить личное сообщение для veles2008 Найти все сообщения от veles2008
  № 7  
Ответить с цитированием
veles2008
 
Аватар для veles2008

Регистрация: Sep 2008
Сообщений: 158
ок. Спасибо

Старый 02.12.2009, 00:08
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 8  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Код AS1/AS2:
if (Key.getCode() == Key.UP && flag) { //ловит конкретно клавишу UP
 flag = false;
...
}
Добавлено через 3 минуты
Цитата:
Сообщение от mooncar Посмотреть сообщение
1. Заменяете кнопку-Button на кнопку - MovieClip, в нем два кадра: обычное и нажатое состояние.
Внимательно читаем хелп по AS2, поискав по кючевым словам "_up", "_over" или "_down".
Даже я нашел "Creating movie clips with button states".
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 02.12.2009 в 00:13.
Старый 02.12.2009, 00:21
veles2008 вне форума Посмотреть профиль Отправить личное сообщение для veles2008 Найти все сообщения от veles2008
  № 9  
Ответить с цитированием
veles2008
 
Аватар для veles2008

Регистрация: Sep 2008
Сообщений: 158
А можно
Код AS1/AS2:
var keyListener_obj:Object = new Object();
как то подругому, а то всё хорошо, а действия происходят в геометрической прогрессии?

Старый 02.12.2009, 00:24
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 10  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от veles2008 Посмотреть сообщение
А можно
Код AS1/AS2:
var keyListener_obj:Object = new Object();
как то подругому, а то всё хорошо, а действия происходят в геометрической прогрессии?
Вопрос не понятен.

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

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

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


 


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


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