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

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

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

Регистрация: Jun 2009
Сообщений: 24
По умолчанию комбинация CTRL+Z

Доброго времени суток, уважаемые эксперты!
Нужно, чтобы по нажатию клавиш CTRL+Z осуществлялся переход на предыдущую страницу, а ниже представленный код работает уже сразу после нажатия CTRL.
Код AS1/AS2:
var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
	if (Key.isDown(Key.CONTROL) && (Key.getCode() == Key.getCode(z))) {
		gotoAndStop(i);
		i=null;
	}
};
Key.addListener(keyListener);
Помогите, пожалуйста, исправить код.

Старый 03.06.2009, 20:12
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 2  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Цитата:
Usage
Key.getCode() : Number
Parameters
None.

Returns
A number; an integer that represents the key code of the last key pressed.
А коды клавиш задаются как константы, которые можно найти в разделе хелпа Keyboard keys and key code values.
Поэтому сравнение для z некорректно, и всегда возвращает true. То, что такой код компилируется - из-за излишей мягкости AS2.
Второе сравнение должно быть
Код AS1/AS2:
(Key.getCode() == 90)
__________________
4am is time to rock


Последний раз редактировалось DarkLight; 03.06.2009 в 20:14.
Старый 03.06.2009, 21:34
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 3  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
из хелпа
Код AS1/AS2:
function myOnPress() {
    trace("hello");
}
function myOnKeyDown() {
    // 55 is key code for 7
    if (Key.isDown(Key.CONTROL) && Key.getCode() == 55) {
    Selection.setFocus(my_btn);
    my_btn.onPress();
   myOnPress()
   }
}
var myListener:Object = new Object();
myListener.onKeyDown = myOnKeyDown;
Key.addListener(myListener);

Старый 03.06.2009, 23:04
motoden вне форума Посмотреть профиль Отправить личное сообщение для motoden Найти все сообщения от motoden
  № 4  
Ответить с цитированием
motoden

Регистрация: Jun 2009
Сообщений: 24
Kil33, в хэлпе я видел этот пример. Осталось всего-ничего реализовать мой пример))
DarkLight, даже если я задаю константу
Код AS1/AS2:
var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
	if (Key.isDown(Key.CONTROL) && (Key.getCode() == 90)) {
		gotoAndStop(i);
		i=null;
	}
};
Key.addListener(keyListener);
код всё равно не работает...

Добавлено через 1 минуту
точнее скажу, в этом случае он совсем не работает, в противоположность предыдущему...

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
мутновато с onKeyDown при нажатии нескольких клавиш
как вариант можно
Код AS1/AS2:
var pressed:Boolean = false;
function onEnterFrame()
{
	if (!pressed && Key.isDown(Key.CONTROL) && Key.isDown(90) )
	{
		trace("CONTROL-Z");
	}
	pressed = Key.isDown(Key.CONTROL) && Key.isDown(90);
}

Старый 04.06.2009, 00:46
motoden вне форума Посмотреть профиль Отправить личное сообщение для motoden Найти все сообщения от motoden
  № 6  
Ответить с цитированием
motoden

Регистрация: Jun 2009
Сообщений: 24
silin, спасибо, работает!
А вы не могли бы пояснить значение заведенной переменной pressed? А то вариант кода и без неё прекрасно работает:
Код AS1/AS2:
function onEnterFrame()
{
	if (Key.isDown(Key.CONTROL) && Key.isDown(90) )
	{
		gotoAndStop(i);
		i = null;
	}
}

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
без проверки при нажатых клавишах 'событие' генерится на каждом такте, т.е. в каждом onEnterFrame вызывается gotoAndStop(i);, а не только при самом нажатии
для gotoAndStop(i); это может быть и не заметно (хотя и не логично), но для каких-то более ощутимых действий легко получится бардак

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

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

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


 


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


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