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

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

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

Регистрация: Oct 2005
Сообщений: 102
По умолчанию набор слога на клаве

Здравствуйте уважаемые флешеры.
Мне необходимо выполнить следующую задачу:
В ходе проигрования клипа на клавиатуре необходимо набрать слог (допустим) "ВА", после этого происходят следующие действия.
Я написал следующий конструктор:
Код:
onClipEvent (enterFrame) { 
    if (Key.isDown(68)) { 
        if (Key.isDown(70)) { 
            trace(1); 
        } 
    } 
}
Он работает не так как надо:
Срабатывает когда нажата первая и паралельно нажата вторая.
А как сделать чтобы при последовательном нажатии происходило действие?

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

Регистрация: Jul 2007
Сообщений: 173
Ну сделай массив из двух элементов, в который ты будешь заносить нажатые клавиши, и проверять на то что тебе необходимо. =)

Старый 25.10.2007, 22:54
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 3  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Цитата:
Сообщение от ALiEN_
сделай массив из двух элементов
Пришельцы высосали мой мозг!

Старый 25.10.2007, 21:12
lukish вне форума Посмотреть профиль Найти все сообщения от lukish
  № 4  
Ответить с цитированием
lukish
Banned

Регистрация: Oct 2005
Сообщений: 102
А можо по подробнее, я не совсем понял.

Старый 25.10.2007, 21:30
_ViPeR_ вне форума Посмотреть профиль Отправить личное сообщение для _ViPeR_ Найти все сообщения от _ViPeR_
  № 5  
Ответить с цитированием
_ViPeR_

Регистрация: Sep 2007
Сообщений: 64
Код:
var Arr:Array = new Array();
var i:Number = 0;
var Succes:Boolean = false;
var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
	i += 1;
	if (i>2) {
		i = 1;
	}
	Arr[i] = Key.getCode();
};
Key.addListener(keyListener);
_root.onEnterFrame = function():Void  {
	if (Arr[1] == 68 && Arr[2] == 70) {
		trace("Succes");
	}
};
Я думаю труда не составит избавиться от проблемы неправльно нажатого первого символа

Старый 25.10.2007, 22:37
ALiEN_ вне форума Посмотреть профиль Отправить личное сообщение для ALiEN_ Посетить домашнюю страницу ALiEN_ Найти все сообщения от ALiEN_
  № 6  
Ответить с цитированием
ALiEN_
UFO
 
Аватар для ALiEN_

Регистрация: Jul 2007
Сообщений: 173
Немного подлатал код _ViPeR_`a:

Код:
var arr:Array = new Array ( null, null ); // заполним массив пустыми элементами
var keyListener:Object = new Object ();

keyListener.onKeyDown = function () 
{
	arr.shift (); // выкидываем первый элемент массива
	arr.push ( Key.getCode () ); // добавляем в конец второй
	
	if (arr [0] == 68 && arr [1] == 70) 
	{
		trace ( "Succes : " + arr );
	}
	
}; 
Key.addListener(keyListener);

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

блогер
Регистрация: Jan 2004
Адрес: D
Сообщений: 1,592
Записей в блоге: 2
Можно и так =)
Код:
var total:Number = 0;
var Go:Number = 0;
var a:Number = 0;
var b:Number = 0;
///
onEnterFrame = function () {
	if (Key.isDown(68)) {
		a = 2;
		Go = 1;
	}
	if (Key.isDown(70) && Go == 1) {
		b = 4;
	}
	total = a+b;
	if (total == 6) {
		Go = 0;
		trace(1);
	}
};
Всё просто сумма из чисел 2,4,8,16,32,64,128 и т.д неповторяется и этим можно воспользоватся =)
__________________
Безвыходных положений небывает © Барон Мюнхаузен=)Исходники

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

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код:
var s:String = "  ";
var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
	s += String.fromCharCode((Key.getAscii()));
	s = s.substr(1, 2);
	trace(s);
};
Key.addListener(keyListener);

Старый 26.10.2007, 11:36
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 9  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
2udaaff

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

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

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


 


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


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