![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2005
Сообщений: 78
|
Подскажите пожалуйста возможно ли такое на AS, нужно с имитировать нажатие кнопки на клавиатуре, разъясню по подробней во время проигрывание ролика нужно кодом вызвать что была нажата кнопка например в лево но при это пользователь ничего на клавиатуре не нажимал... возможно ли это?
заранее благодарен |
|
|||||
|
4AM Games
|
Так сделать нельзя, но можно обойти это, создав методы которые выполняют определенные действия, и уже их вызывать когда тебе надо ( по нажатию кнопки\мышки и тд)
//создаем функцию которая рисует круг
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 и я стану писателем ^_^ |
|
|||||
|
Регистрация: Sep 2005
Сообщений: 78
|
К сожелению в моем случае это нельзя обойти мне нужно именно чтоб комп думал что была нажата кнопка, у меня есть swf которая генериться не во флэше, для того чтоб произошло какое-то действия должна нажаться кнопка клавы или мыши... вот и мучаюсь...
|
|
|||||
|
Et cetera
Регистрация: 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. |
|
|
« Предыдущая тема | Следующая тема » |
|
|