PDA

Просмотр полной версии : обработчик KeyDown


feanarf
31.01.2008, 19:13
не знаю, может я сильно туплю, но скажите, почему не обрабатывается событие в этом коде:
My_clip.onKeyDown=function()
{trace('keyDown');
}
P.S. flash 8 a.s. 2.0

GreatRash
31.01.2008, 19:16
var listener:Object = new Object();
Key.addListener(listener);
listener.onKeyDown = function() {
trace('keyDown');
};

feanarf
31.01.2008, 19:19
просто привык к as 1.0 там было как у меня :)
P.S. спасибо!

Molecula
31.01.2008, 19:51
Key.addListener(this);
this.onKeyDown = function(){trace('keyDown')}

etc
01.02.2008, 00:25
просто привык к as 1.0 там было как у меня :)
P.S. спасибо!
Это тоже AS1.

CrazyFlasher
01.02.2008, 00:46
вообще на самом деле сложно определить грань между AS1 и AS2...а какой язык тогда во flash 4 ? AS0 ? :)
но вообще AS2 принято называть ООП язык. Так что, в принципе, соглашусь с __etc

ktotam
01.02.2008, 12:11
Здравствуйте! не стал создавать новую тему, так как проблема схожа. Есть 2 клипа _a и _b, и обработчик клавишь. Клипы с помощью клавиатуры двигаются вправо и влево, проблема в том, что обрабатывается последняя нажатая клавиша а не все нажатые... подскажите что делать
stop();
_root[attachMovie("_a", "_a", 1,{_x:100, _y:200})];
_root[attachMovie("_b", "_b", 2,{_x:300, _y:200})];

var listener:Object = new Object();
Key.addListener(listener);
listener.onKeyDown = function() {
trace("onKeyDown: "+this._name+" (Key: "+getKeyPressed()+")");
if(getKeyPressed()=="a"){_root._a._x-=10}
if(getKeyPressed()=="d"){_root._a._x+=10}
if(getKeyPressed()=="w"){_root._a._y-=10}
if(getKeyPressed()=="s"){_root._a._y+=10}
if(getKeyPressed()=="LEFT"){_root._b._x-=10}
if(getKeyPressed()=="RIGHT"){_root._b._x+=10}
if(getKeyPressed()=="UP"){_root._b._y-=10}
if(getKeyPressed()=="DOWN"){_root._b._y+=10}
};
listener.onKeyUp = function() {
trace("onKeyUp: "+this._name+" (Key: "+getKeyPressed()+")");
};
function getKeyPressed():String {
var theKey:String;
switch (Key.getCode()) {
case Key.LEFT :
theKey = "LEFT";
break;
case Key.RIGHT :
theKey = "RIGHT";
break;
case Key.UP :
theKey = "UP";
break;
case Key.DOWN :
theKey = "DOWN";
break;

default :
theKey = chr(Key.getAscii());
}
return theKey;
}