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

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

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

Регистрация: Mar 2009
Сообщений: 357
По умолчанию программное нажатие кнопки

есть желание при попадании фокуса на кнопку-мувиклип после нажатия пробела имитировать клик (как в виндовс).
есть листенер, отлавливающий фокус:
Код AS3:
up_btn.addEventListener(FocusEvent.FOCUS_IN, btnFocus);
функция для фокуса:
Код AS3:
private function btnFocus(e:FocusEvent):void
	{
		e.target.addEventListener(KeyboardEvent.KEY_DOWN, keyHandler);
	}
и сам обработчик:
Код AS3:
private function keyHandler(e:KeyboardEvent):void
	{
		if (e.keyCode == 32)
		{
			e.target.MouseEvent.CLICK;
		}
	}
но при нажатии на прбел дебаггер пишет:
TypeError: Error #1010: A term is undefined and has no properties.
at ZZZ/::keyHandler()

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
здается мне:
приведение типов
вызов сразу обработчика
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 20.03.2009, 01:19
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 3  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
Цитата:
Код AS3:
e.target.MouseEvent.CLICK
И что Вы хотите этим сделать? о.О

Естественно, у e.target не будет никакого свойства под названием MouseEvent.
__________________
Дело не в тебе

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

Регистрация: Mar 2009
Сообщений: 357
сделал так:
Код AS3:
e.target.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
попутно возник вопрос: когда нужно использовать dispatchEvent, а когда addEventListener? и когда в последнем параметру useCapture задавать значение true?

Старый 20.03.2009, 01:33
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 5  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
dispatchEvent - выстреливает событие, addEventListener - слушает событие. useCapture используется, если нужно отловить событие только на стадии захвата.
__________________
Дело не в тебе


Последний раз редактировалось AL.exe; 20.03.2009 в 01:35.
Старый 20.03.2009, 02:34
loover вне форума Посмотреть профиль Отправить личное сообщение для loover Найти все сообщения от loover
  № 6  
Ответить с цитированием
loover
 
Аватар для loover

Регистрация: Mar 2009
Сообщений: 357
Цитата:
Сообщение от AL.exe Посмотреть сообщение
только на стадии захвата.
т.е. только один раз?

приведенный мною выше код вызова клика при нажатии на клавишу (или способ его вызова) имеет одну странную особенность: клик отсылается и в момент перехода на следующий объект.

Добавлено через 27 минут
все работает ок! )
ошибка была из-за конструкции:
Код AS3:
if (e.keyCode == 13 || 32)
исправил на:
Код AS3:
if (e.keyCode == 13 || e.keyCode == 32)
интересно, почему возникала ошибка?


Последний раз редактировалось loover; 20.03.2009 в 02:48.
Старый 20.03.2009, 20:25
Dante вне форума Посмотреть профиль Отправить личное сообщение для Dante Найти все сообщения от Dante
  № 7  
Ответить с цитированием
Dante

Регистрация: Feb 2009
Сообщений: 20
Цитата:
Сообщение от loover Посмотреть сообщение
т.е. только один раз?

приведенный мною выше код вызова клика при нажатии на клавишу (или способ его вызова) имеет одну странную особенность: клик отсылается и в момент перехода на следующий объект.

Добавлено через 27 минут
все работает ок! )
ошибка была из-за конструкции:
Код AS3:
if (e.keyCode == 13 || 32)
исправил на:
Код AS3:
if (e.keyCode == 13 || e.keyCode == 32)
интересно, почему возникала ошибка?
потому что
Код AS3:
if (e.keyCode == 13 || 32)  //всегда равен true

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

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

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


 


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


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