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

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

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
См. пример (тестируйте исходник в среде разработки, там trace есть)
Код AS1/AS2:
function doIt () {
	//действие
	trace('нажато!');
	this.gotoAndStop(1);
}
 
btn.onPress = function  () { //нажатие кнопки сцены
	this.gotoAndStop(2);
}
 
btn.onRelease = doIt; //отпускание кнопки сцены
 
var keyListener_obj:Object = new Object();
 
keyListener_obj.onKeyDown = function() {
    if (Key.getCode() == Key.UP && !wasPressed) { //ловит нажатие UP
		btn.gotoAndStop(2);
		wasPressed = true ;
    }	
};
keyListener_obj.onKeyUp = function() {
    if (Key.getCode() == Key.UP) { //ловит отпускание UP
		doIt ();
		btn.gotoAndStop(1);
		wasPressed = false ;
    }	
};
Key.addListener(keyListener_obj);


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

Регистрация: Sep 2008
Сообщений: 158
Вот мой код и исходник.
Если нажимать мышкой то увеличение координат и текст увеличивается на 1. Если клавиатурой то в прогрессии
Код AS1/AS2:
speed=0;
hop=0;
 
onEnterFrame=function() {
drawing_mc.lineTo(bk._x, bk._y);
var keyListener_obj:Object = new Object();
 
keyListener_obj.onKeyDown = function() {
    if (Key.getCode() == Key.UP && !wasPressed) { //ловит нажатие UP
 
		wasPressed = true ;
    }	
};
keyListener_obj.onKeyUp = function() {
    if (Key.getCode() == Key.UP) { //ловит отпускание UP
		doit1 ();
 
		wasPressed = false ;
    }	
};
Key.addListener(keyListener_obj);
 
vperod.onRelease = doit1; 
 
function doit1 () {
 
	txt.text +="Вперёд" + "\n";
	speed =20;
 
	hop = hop + 1;
	korx=hop; 
	}
 
bk._x+=speed*(Math.round(Math.sin(0.0175 * bk._rotation)));  //увеличиваем координаты по _х в соответствии с углом поворота и скоростью; 0.0175 - это Пи/180 (перевод из градусной меры в радианную)
bk._y+=speed*(Math.round(-Math.cos(0.0175 * bk._rotation)));  //увеличиваем координаты по _y в соответствии с углом поворота и скоростью
 
speed*=0;
 
 
 
}
Вложения
Тип файла: rar sun.rar (11.4 Кб, 24 просмотров)

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Ну зачем вы все запихали в onEnterFrame, что за дикий код?
onEnterFrame выполняет все, что внутри нее с частотой, равной частоте кадров.
Разве есть необходимость с огромной скоростью непрерывно пересоздавать слушателей и переназначать функции onRelease, onKeyDown и onKeyUp, doit1?
Вытаскивайте все из onEnterFrame, оставляйте там только то, что реально нужно выполнять непрерывно, а все прочие функции выносите из нее.
Чего вы вообще пытаетесь добиться?


Последний раз редактировалось mooncar; 02.12.2009 в 13:46.
Старый 02.12.2009, 15:29
Chuck607 вне форума Посмотреть профиль Отправить личное сообщение для Chuck607 Найти все сообщения от Chuck607
  № 14  
Ответить с цитированием
Chuck607

Регистрация: Nov 2009
Сообщений: 40
Объясните пожалуйста зачем нужен слушатель keyListener_obj? какова его функция ? Ведь без него тоже будет работать

Старый 02.12.2009, 17:41
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 15  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Без слушателя никуда! Но, вот лишний объект убрать можно - мувиклип слушает клаву и мышь изначально, как объект предопределенного класса.
Код AS1/AS2:
function doIt() {
	trace('нажато!');
	this.gotoAndStop(1);
}
btn.onPress = function() {
	this.gotoAndStop(2);
};
btn.onRelease = doIt;
btn.onKeyDown = function() {
	if (Key.getCode() == Key.UP && !wasPressed) {
		btn.gotoAndStop(2);
		wasPressed = true;
	}
};
btn.onKeyUp = function() {
	if (Key.getCode() == Key.UP) {
		doIt();
		btn.gotoAndStop(1);
		wasPressed = false;
	}
};
Key.addListener(btn);

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

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

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Получилось? Пожалуйста...

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

Регистрация: Sep 2008
Сообщений: 158
Получилось. Но на втором кадре нажатие клавиш сохраняется.

А за решение чтоб не сохранялись спасибо Жень Шень!

Старый 06.08.2010, 20:33
odlf3 вне форума Посмотреть профиль Найти все сообщения от odlf3
  № 19  
Ответить с цитированием
odlf3
Banned
[+6 18.05.10]
[+6 17.08.10]

Регистрация: Apr 2010
Сообщений: 14
А как если действие при нажатии кнопки "1" или "2", "3" итд

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

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

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


 


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


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