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

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

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

Регистрация: Sep 2005
Сообщений: 78
По умолчанию Подскажите как с имитировать нажатие кнопки

Подскажите пожалуйста возможно ли такое на AS, нужно с имитировать нажатие кнопки на клавиатуре, разъясню по подробней во время проигрывание ролика нужно кодом вызвать что была нажата кнопка например в лево но при это пользователь ничего на клавиатуре не нажимал... возможно ли это?

заранее благодарен

Старый 26.06.2006, 19:56
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 2  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Так сделать нельзя, но можно обойти это, создав методы которые выполняют определенные действия, и уже их вызывать когда тебе надо ( по нажатию кнопки\мышки и тд)
Код:
//создаем функцию которая рисует круг
function drawCircle(x:Number,y:Number,radius:Number,text:String):MovieClip
{
	var depth:Number = getNextHighestDepth();
	var result:MovieClip = createEmptyMovieClip("circle_"+depth+"_mc",depth);
	result.lineStyle(radius,0xFF6600);
	result.moveTo(0,0);
	result.lineTo(.5,.5);
	if(text != undefined)
	{
		var label:TextField = result.createTextField("label_txt",1,0,0,0,0);
		label.text = text;
		label.autoSize = true;
		label.selectable = false;
	}
	result._x = x;
	result._y = y;
	return result;
}
//рисуем круг который будем двигать
var circle:MovieClip = drawCircle(Stage.width/2-10,Stage.height/2-1,20);
//рисуем кнопки
var left:MovieClip = drawCircle(25,Stage.height-50,50,"Left");
var right:MovieClip =drawCircle(Stage.width-25,Stage.height-50,50,"Right");
//Функция которая двигает sqr_mc влево
function moveLeft():Void
{
	circle._x -=5;
}
//двигает в право
function moveRight():Void
{
	circle._x +=5;
}
//создаем листенер для класса Key
var keyListener:Object = new Object();
//создаем обработчик события, реагирующий на нажатие кнопки
keyListener.onKeyDown = function ():Void
{
	//если нажата LEFT то двигаем влево
	if(Key.getCode() == Key.LEFT)
	{
		moveLeft();	
	}
	//если RIGHT то двигаем вправо
	else if(Key.getCode() == Key.RIGHT)
	{
		moveRight();
	}
}
//подписываем слушателя на событие.
Key.addListener(keyListener);
//определяем обработчики событий для кнопок
left.onRelease = moveLeft;
right.onRelease = moveRight;
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 26.06.2006, 20:41
Artyom from Kiev вне форума Посмотреть профиль Отправить личное сообщение для Artyom from Kiev Найти все сообщения от Artyom from Kiev
  № 3  
Ответить с цитированием
Artyom from Kiev

Регистрация: Sep 2005
Сообщений: 78
К сожелению в моем случае это нельзя обойти мне нужно именно чтоб комп думал что была нажата кнопка, у меня есть swf которая генериться не во флэше, для того чтоб произошло какое-то действия должна нажаться кнопка клавы или мыши... вот и мучаюсь...

Старый 26.06.2006, 21:03
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Код:
anyObject = new Object();
anyObject.onKeyDown = function(keyCode) {
	if (keyCode != undefined) {
		trace('A virtual key is down!');
	} else {
		keyCode = Key.getCode();
		trace('A real key is down!');
	}
	if (keyCode==Key.LEFT) {
		trace('Left key is down (virtual or real)');
	}
};
Key.addListener(anyObject);
var method = Function(Key['broadcastMessage']);
method.call(Key, 'onKeyDown', Key.LEFT);
Нате. Это хак, сразу предупреждаю.
Проверка Key.isDown не работает, если в аргументе функции что-то есть -- это код клавиши (в данном случае Key.LEFT), которая "нажата" программно. Если в аргументе ничего нет, то нажата реальная клавиша.


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

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

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


 


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


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