addevent键盘到外部swf无法正常工作

时间:2011-08-26 11:39:48

标签: flash actionscript-3 flash-cs5

我已经在线查看了其他问题,但仍然无法弄清楚我哪里出错了 我正在向外部加载的swf添加2个事件

一个有效,有一个没有?!? 功能名称是正确的,所以我可以看到我缺少的东西

my_loadedSwf = loadEvent.currentTarget.content as MovieClip;
my_loadedSwf.addEventListener(Event.ENTER_FRAME, my_loadedSwf.enterFrameHandler);
my_loadedSwf.addEventListener(KeyboardEvent.KEY_DOWN,  my_loadedSwf.myOnPress);
addChild(my_loadedSwf);

enterFrameHandler正在运行,但onPress不是吗?!

任何帮助都会很棒

由于

编辑:

我已设置my_Loader.tabEnabled = true; 虽然没有改变任何东西

更多编辑 抱歉,设置my_loadedSwf.tabEnabled = true;,现在效果很好

上述编辑 实际上,它不起作用,我必须按'tab'来控制播放器

ANSWER

Arrrgh,抱歉所有的编辑 我删除了选项卡索引代码并将焦点添加到加载的swf

2 个答案:

答案 0 :(得分:1)

通常在阶段级别捕获/收听键盘事件。您应该将键盘侦听器添加到舞台上,并且仍然针对您想要的任何处理程序:

stage.addEventListener(KeyboardEvent.KEY_DOWN,  my_loadedSwf.myOnPress);

答案 1 :(得分:0)

试试这个:

//Load Complete Event Handler
private function loadCompleteEventHandler(evt:Event):void
{
    //Remove The Event Listener
    evt.currentTarget.removeEventListener(Event.COMPLETE, loadCompleteEventHandler);

    //Loaded external swf is a display object, so you can add it to the display list
    addChild(evt.currentTarget.content);

    //To access the loaded external swf's public methods and properties you can cast it as an object
    var myExternalSwf:Object = evt.currentTarget.content as Object;

    addEventListener(Event.ENTER_FRAME, myExternalSwf.enterFrameHandler);
    addEventListener(KeyboardEvent.KEY_DOWN, myExternalSwf.myOnPress);
}