KeyboardEvent仅在MouseEvent之后有效

时间:2011-11-10 19:24:17

标签: actionscript-3 mouseevent flash-cs5 keyboard-events

好的,我正在Flash CS5中创建幻灯片演示文稿。代码是非常基本的,但它不能按预期工作。如果我按下按钮,或按键盘上的向上/向右箭头,它应该转到下一帧。但是,键盘只在我按下一次按钮后才能工作。

我的代码:

import flash.events.MouseEvent;
import flash.events.KeyboardEvent;

slides.stop();

addEventListener(KeyboardEvent.KEY_DOWN, keyD);
FB.addEventListener(MouseEvent.CLICK, nextSld);
BB.addEventListener(MouseEvent.CLICK, prevSld);

function keyD(evt){
    var k = evt.keyCode;
    if(k==37||k==38){ 
        prevSld(evt);
    }
    if(k==39||k==40){ 
        nextSld(evt);
    }
}
function nextSld(evt){
    slides.nextFrame();
    }
function prevSld(evt){
    slides.prevFrame(); 
}

幻灯片是一个动画片段,我已经存储了所有幻灯片(哦,顺便说一下,我知道我的设置不是最好的,但我不会花很多时间在它上面,因为它是一个宗教课)。 FB是前进按钮,你可以猜到BB是什么......

现在,我只是确保我的问题不在这里,也许有人可以指出问题,即使这可能不适合这个板。

2 个答案:

答案 0 :(得分:2)

addEventListener(KeyboardEvent.KEY_DOWN, keyD);更改为stage.addEventListener(KeyboardEvent.KEY_DOWN, keyD);

答案 1 :(得分:1)

看起来你的电影没有聚焦,所以你需要点击一下电影才能获得键盘事件。