Просмотр полной версии : Подскажите как с имитировать нажатие кнопки
Artyom from Kiev
26.06.2006, 19:27
Подскажите пожалуйста возможно ли такое на AS, нужно с имитировать нажатие кнопки на клавиатуре, разъясню по подробней во время проигрывание ролика нужно кодом вызвать что была нажата кнопка например в лево но при это пользователь ничего на клавиатуре не нажимал... возможно ли это?:wacko:
заранее благодарен
Так сделать нельзя, но можно обойти это, создав методы которые выполняют определенные действия, и уже их вызывать когда тебе надо ( по нажатию кнопки\мышки и тд)
//создаем функцию которая рисует круг
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;
Artyom from Kiev
26.06.2006, 20:41
К сожелению в моем случае это нельзя обойти мне нужно именно чтоб комп думал что была нажата кнопка, у меня есть swf которая генериться не во флэше, для того чтоб произошло какое-то действия должна нажаться кнопка клавы или мыши... вот и мучаюсь...
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), которая "нажата" программно. Если в аргументе ничего нет, то нажата реальная клавиша.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.