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

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

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

Регистрация: Nov 2012
Сообщений: 3
По умолчанию Привязка кнопки к клавише на клавиатуре

Есть 9 кнопок. На каждую кнопку наложен свой семпл, который проигрывается при нажатии на кнопку мышью. Как привязать каждую кнопку к клавишам на клавиатуре (numpad 1-9). Делается нечто вроде эмулятора Akai MPC. Заранее спасибо.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Кнопки не надо никуда привязывать. Надо подписаться на события от клавиатуры и вызывать по ним те же обработчики событий, которые сейчас вызываются кнопками.
__________________
Reality.getBounds(this);

Старый 04.11.2012, 00:34
mnstrsound вне форума Посмотреть профиль Отправить личное сообщение для mnstrsound Найти все сообщения от mnstrsound
  № 3  
Ответить с цитированием
mnstrsound

Регистрация: Nov 2012
Сообщений: 3
Дело в том что я новичок во Флеше, пока что изучаю литературу, а хотелось бы сейчас сделать этот эмулятор. Я думаю код небольшой должен быть для вызова сэмпла из библиотеки. Если вас не затруднит, не могли бы вы написать код для одной клавиши "numpad 1".
ЗЫ. Привязку к кнопкам хотел, потому что на кнопках анимация - при нажатии кнопка как бы продавливается.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Значит придется сделать в классе кнопок публичные методы, запускающие анимацию.
Мне очень странно слышать, как человек, который пишет Приложение, просит написать за него трехстрочный код обычного добавления слушателя.
Читайте справку. Копипастить чужой код это не то, чему я хотел бы учить новичков.
__________________
Reality.getBounds(this);

Старый 04.11.2012, 11:41
mnstrsound вне форума Посмотреть профиль Отправить личное сообщение для mnstrsound Найти все сообщения от mnstrsound
  № 5  
Ответить с цитированием
mnstrsound

Регистрация: Nov 2012
Сообщений: 3
Дело в том, я не программист. И пишу я небольшую игрушечку такую, чтобы можно было побаловаться подобием драм машины. Ну и соответственно сам флеш мне интересен. Вот только я пока доберусь до классов и объектов пройдет много времени, а побаловаться охота сейчас.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Объясню, как у нас тут принято вообще.
Вы что-то делаете. Вы пишете какой-то код, он не работает и Вы обращаетесь за помощью. Вы показываете свой код, описываете, что Вы хотели получить, и что Вас не устраивает в полученном результате. Если есть сообщения об ошибках от компилятора или в рантайме, честно показываете эти ошибки. И мы стараемся помочь коллеге.
Сейчас Вы просите написать для Вас приложение, потому что Вам хочется его срочно, а учиться писать самому — долго. Для таких ситуаций есть раздел Вакансии или сайты фрилансеров, охотно выполняющих подобные заказы за небольшой гонорар. Здесь помогают, а не "делают за". Важно Ваше участие в процессе. Примеры кода, подробности задачи, Ваши мысли и представления, конкретные затруднения и непонятки. Это вызывает желание разбираться, помогать и объяснять.
Предложение "сделать для вас" вызывает только желание получить вознаграждение за свой труд.
Такой вот парадокс. За просто так мы можем предложить Вам только Обучение мастерству и Знания. Всего лишь.

Добавлено через 4 минуты
Цитата:
Вот только я пока доберусь до классов и объектов пройдет много времени, а побаловаться охота сейчас.
У Вас есть Цель. Какое удовольствие послать туда другого? Стремитесь сами. Мы охотно поможем.
__________________
Reality.getBounds(this);

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

Регистрация: Nov 2012
Сообщений: 30
Вот код
Код AS3:
registr_user.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_11);
user_sexi1.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_12);
user_sexi2.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_13);
userloader.addEventListener(Event.COMPLETE, userLoader);
registr_user.addEventListener(KeyboardEvent.KEY_DOWN, fl_MouseClickHandler_11);
 
var sexi:String;
var sexis:String;
var userloader:URLLoader = new URLLoader();
userloader.load(new URLRequest("user.xml"));
var userXML:XML;
var userList:XMLList;
 
function userLoader():void
{
	userXML = XML(userloader.data);
	trace(userXML);
}
function fl_MouseClickHandler_12(event:MouseEvent):void
{
	sexi = user_sexi1.label;
}
 
function fl_MouseClickHandler_13(event:MouseEvent):void
{
	sexis = user_sexi2.label;
}
 
function fl_MouseClickHandler_11(event:MouseEvent,KeyboardEvent):void
{
        registr_user.keyCode = 13
	var user_login:String = user_login.text;
	var user_password:String = user_password.text;
	var repeat_password:String = repeat_password.text;
	var user_email:String = user_email.text;
	var i:int = 1;
	var id:Number;
 
	if (sexi == user_sexi1.label)
	{
		trace(user_sexi1.label);
	}
	else
	{
		sexi = sexis;
	}
 
	var user:XML = <user />;
	user. @ id = id;
	user.user_login = user_login;
	user.user_password = user_password;
	user.repeat_password = repeat_password;
	user.email = user_email;
	user.sexi = sexi;
 
	if (user_login =="" &&user_password == "" &&repeat_password == "" &&user_email == "")
	{
		trace(error_text.text = ("Ошибка! Вы не заполнили все поля."));
	}
	else if (repeat_password !=  user_password)
	{
		trace(error_password.text = ("Пароли не совпадают!"));
	}
	else
	{
		var phpRequest:URLRequest = new URLRequest('user.php');
		phpRequest.data = user;
		phpRequest.contentType = 'text/xml';
		phpRequest.method = URLRequestMethod.POST;
		var phpLoader:URLLoader = new URLLoader();
		phpLoader.load(phpRequest);
		trace(text_result.text = ("Регистрация прошла успешно. Вы можете войти в чат."));
	}
}
Повесил слушатель событий клавиатуры на кнопку. Вроде ошибок нет, но как только добавляю keyCode, выдает ошибку 1119.
Попутно еще два вопроса: в этом же коде не получается сделать проверку логина на повторяемость и проверку пароля на количество символов.
Помогите пожалуйста.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
function fl_MouseClickHandler_11(event:MouseEvent,KeyboardEvent):void
Листенеру отдается только один параметр — Событие, то есть объект-экземпляр класса Event или его наследника. Что за параметр KeyboardEvent, и почему не указан его класс, компилятор не должен понимать, а должен ругаться хотя бы на отсутствие типизации.
Что такое "registr_user" и есть ли у него свойство keyCode , я не в курсе, Вам виднее.
Код AS3:
	if (user_login =="" &&user_password == "" &&repeat_password == "" &&user_email == "")
	{
		trace(error_text.text = ("Ошибка! Вы не заполнили все поля."));
	}
Я бы сказал "вы не заполнили ни одного поля".. Если хоть одно поле будет испачкано, это условие выдаст false. Если это будут не пароли, то они тоже окажутся равны (пусто) и значит юзер "успешно пройдет регистрацию". Во всяком случае, для клиента.

Добавлено через 10 минут
Код AS3:
else 
{
	if (repeat_password !=  user_password)
	{
		trace(error_password.text = ("Пароли не совпадают!"));
		return;
	}
	if(repeat_password.length < 5)
	{
		trace(error_password.text = ("Пароль должен содержать не менее 5 символов!"));
		return;
	}
}
Добавлено через 14 минут
Логическое ИЛИ пишется как ||
А && это логическое И. То есть у Вас условие "если (поле1 пусто) И (поле2 пусто) И (поле3 пусто)...
А должно быть ИЛИ:
Код AS3:
	if (user_login =="" || user_password == "" || repeat_password == "" || user_email == "")
	{
		trace(error_text.text = ("Ошибка! Вы заполнили не все поля."));
	}
Добавлено через 25 минут
Вообще не надо строить хитроумные конструкции из if..else — сами себе жизнь усложняете.
Ставьте просто огород "фильтров" из простых if(), но в случае ошибки выводите сообщение и выходите из функции (return), прекращайте таким образом обработку. Юзер должен исправить ошибку и нажать кнопку еще раз. Тогда весь метод запустится с начала, и так пока все проверки не будут удачно пройдены.
И еще — вешать клавиатурный слушатель на кнопку бессмысленно. Он сработает, только если кнопка в этот момент будет в фокусе. А она не будет — фокус на текстовом поле, в котором юзер что-то печатал. Вот с них и слушайте ентер.
__________________
Reality.getBounds(this);

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

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

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


 


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


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