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

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

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

Регистрация: Nov 2010
Сообщений: 111
По умолчанию Как зажать клавишу?

Мне необходимо сделать перемещение объекта. Данный код работает, но есть одна проблема. При нажатии на клавишу LEFT происходит одно перемещение и через некоторое время уже она "зажимается" и объект начинает постоянное движение. Как привязать сюда выполнение сразу в каждом кадре без паузы?

Код AS3:
var sko:int=4;
 
function dvig(event:KeyboardEvent) {
	if (event.keyCode==Keyboard.LEFT) {
		clip.x-=sko;
	}
}
 
stage.addEventListener(KeyboardEvent.KEY_DOWN,dvig);

Старый 04.02.2011, 16:05
arkadattx вне форума Посмотреть профиль Отправить личное сообщение для arkadattx Найти все сообщения от arkadattx
  № 2  
Ответить с цитированием
arkadattx

Регистрация: Apr 2010
Сообщений: 219
По факту нажатия либо по таймеру, либо в каждом кадре начинаете перемещать, по факту отжатия - прекращаете.

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
http://www.flasher.ru/forum/showthre...EE%EF%EE%EA%FD
__________________
тут я

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Код AS3:
var left:Boolean=false;
stage.addEventListener(KeyboardEvent.KEY_DOWN,key_down);
stage.addEventListener(KeyboardEvent.KEY_UP,key_up);
 
function key_down(event:KeyboardEvent) {
	if (event.keyCode==Keyboard.LEFT) :void{
		left=true;
	}
}
 
function key_up(event:KeyboardEvent) {
	if (event.keyCode==Keyboard.LEFT) :void{
		left=false;
	}
}
 
addEventListener(Event.ENTER_FRAME,enter_frame);
function enter_frame(e:Event):void
{
if(left){clip.x-=sko;}
 
}
Поищите здесь в блогах, там есть интересные решения по этому вопросу.

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
http://www.flasher.ru/forum/showthre...highlight=wasd
__________________
тут я

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

Регистрация: Nov 2010
Сообщений: 111
samana спасибо, все работает. Правда удивляет отсутствие в самом языке более простого решения

Старый 04.02.2011, 17:12
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 7  
Ответить с цитированием
goodguy
Banned

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
А что в этом решении сложного? Оно и есть простое. Упрощать уже некуда. Мало ли для каких целей нужно использовать слушатели. Не все же упирается в покадровое движение

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

Регистрация: Nov 2010
Сообщений: 111
Есть одна проблема! В варианте, который я использую(код samana). Необходимо кликнуть мышью на экран иначе не происходит инициализация функций и объект не реагирует на нажатие клавиш. В чем дело?

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Сообщение от TEI Посмотреть сообщение
Есть одна проблема! В варианте, который я использую(код samana). Необходимо кликнуть мышью на экран иначе не происходит инициализация функций и объект не реагирует на нажатие клавиш. В чем дело?
Это не в браузере случайно? Если нет, то попробуйте установить фокус на stage, то-есть напишите такой код:
Код AS3:
stage.focus=stage;
Сам точно не понимаю, как stage может находиться вне фокуса, но такое случается. Был бы признателен, если бы кто ни будь объяснил почему так происходит.

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

Регистрация: Nov 2010
Сообщений: 111
Нет не в браузере. Фокус помог, спасибо

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

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

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


 


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


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