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

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

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

Регистрация: Jul 2010
Сообщений: 51
По умолчанию Движение объекта

Есть кубик в библиотеке 32*32 пикселя
Мы его размещаем на экран допустим в точку 0 0
И начинаем передвигать вправо:

Код AS3:
public function Main() {
	addChild(new_kub);
	stage.addEventListener(KeyboardEvent.KEY_DOWN, startRun);
}
 
public function startRun(e:KeyboardEvent){
   var keyCode:Number = e.keyCode;
   //D или стрелка вправо
   if(keyCode==39 || keyCode==68){
      var spin:Tween;
      spin = new Tween(this, 'x', None.easeOut, new_kub.x, new_kub.x+5, 0.1, true);
 
   }
 
}
Проблема в том что если зажать кнопку то объект начинает двигаться сначала быстро какуето долю секунды(похоже какраз эти 5px) а потом равномерно
В чем проблема?
И реагирует на кнопку не сразу


Последний раз редактировалось Byrger; 13.10.2010 в 17:51.
Старый 13.10.2010, 18:11
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 2  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Откройте любой текстовый редактор и начните давить любую кнопку, например кнопку "Ы". Вы заметите, что сначала она напечатается один раз, а потом будет печататься постоянно.

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

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
ыыыыыыыыыыыыыыыыыыыыыыыыы

в натуре, Psycho Tiger прав

Старый 13.10.2010, 18:58
Byrger вне форума Посмотреть профиль Отправить личное сообщение для Byrger Найти все сообщения от Byrger
  № 4  
Ответить с цитированием
Byrger

Регистрация: Jul 2010
Сообщений: 51
Тогда как в этих танчиках к примеру так сделали?
http://battlecity.com.ua/

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

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
Посмотри тему.

Старый 13.10.2010, 19:41
Byrger вне форума Посмотреть профиль Отправить личное сообщение для Byrger Найти все сообщения от Byrger
  № 6  
Ответить с цитированием
Byrger

Регистрация: Jul 2010
Сообщений: 51
Цитата:
Сообщение от tsarapkabel Посмотреть сообщение
Посмотри тему.
Но там автор описывает проблему которая еще хуже этого

Старый 13.10.2010, 19:51
Zik. вне форума Посмотреть профиль Отправить личное сообщение для Zik. Найти все сообщения от Zik.
  № 7  
Ответить с цитированием
Zik.
 
Аватар для Zik.

Регистрация: Nov 2007
Сообщений: 1,724
при нажатии вешайте энтерфрейм, при отпускании удаляете прослушивание

Старый 13.10.2010, 20:06
Byrger вне форума Посмотреть профиль Отправить личное сообщение для Byrger Найти все сообщения от Byrger
  № 8  
Ответить с цитированием
Byrger

Регистрация: Jul 2010
Сообщений: 51
Цитата:
Сообщение от ZIK68 Посмотреть сообщение
при нажатии вешайте энтерфрейм, при отпускании удаляете прослушивание
Так? и что потом?

public function Main() {

addChild(new_kub);

stage.addEventListener(KeyboardEvent.KEY_DOWN, _startRun);
stage.addEventListener(KeyboardEvent.KEY_UP, _stopRun);
}

public function _startRun(e:KeyboardEvent){
stage.addEventListener(Event.ENTER_FRAME, ???);
}

public function _stopRun(e:KeyboardEvent){
stage.removeEventListener(Event.ENTER_FRAME, ???);
}

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

Регистрация: Dec 2009
Сообщений: 428
Код AS3:
public function _startRun(e:KeyboardEvent){
stage.addEventListener(Event.ENTER_FRAME, enterFrameListener);
}
 
public function _stopRun(e:KeyboardEvent){
stage.removeEventListener(Event.ENTER_FRAME, enterFrameListener);
}
 
private function enterFrameListener(event:Event):void {
    ДВИГАТЬ_ОБЪЕКТ
}
__________________
Скажи мне кто твой друг и я скажу тебе кто твой друг

Старый 13.10.2010, 20:44
Byrger вне форума Посмотреть профиль Отправить личное сообщение для Byrger Найти все сообщения от Byrger
  № 10  
Ответить с цитированием
Byrger

Регистрация: Jul 2010
Сообщений: 51
Цитата:
Сообщение от leofit Посмотреть сообщение
Код AS3:
public function _startRun(e:KeyboardEvent){
stage.addEventListener(Event.ENTER_FRAME, enterFrameListener);
}
 
public function _stopRun(e:KeyboardEvent){
stage.removeEventListener(Event.ENTER_FRAME, enterFrameListener);
}
 
private function enterFrameListener(event:Event):void {
    ДВИГАТЬ_ОБЪЕКТ
}
Тогда при зажатии кнопки обект двигается только 1 раз...
А если держать то он не шевелится после похождения заданного промежутка
А надо чтоб двигался когда держишь кнопку

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

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

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


 


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


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