【发布时间】:2014-06-19 09:18:40
【问题描述】:
我是 actionscript 的新手。前两天刚开始学。我正在尝试为特定按钮添加键盘事件。这是我到目前为止所做的。
import flash.events.KeyboardEvent;
public function f1():void
{
// something
}
public function keyBoardListener(keyEvent:KeyboardEvent):void
{
if(keyEvent.keyCode==37)
f1();
}
在按钮中
<Lib:ManagedButton
id = "MB"
labelText = "MB"
image = " ... "
click="f1()"
enabled = "false"
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyBoardListener);
/>
这是我得到的错误:
Attribute name "stage.addEventListener" associated with an element type "Lib:ManagedButton" must be followed by the ' = ' character.
我要做的是在按下左箭头键时调用函数 f1()。我不希望此页面上的所有按钮都发生这种情况,而只有这个按钮。
【问题讨论】:
-
您正在尝试在 mxml 标记属性中运行代码。这就是错误的原因。
stage.addEventListner不是属性,而是对函数的调用。 -
MangedButton有可以指定的keyDown属性吗?如果是这样,请将您对stage.addEventListener...的呼叫替换为keyDown="keyBoardListener" -
@Brian 这些是 ManagedButton 具有 labelText:String, image:String 的属性。刚刚添加了 keyDown:KeyboardEvent。对吗?
-
ManagedButton是您自己的自定义类吗?如果是这样,您可以将侦听器代码放在那里。您是希望f1()函数仅作用于一个按钮,还是只希望在该按钮具有焦点时使用箭头键来调用它? -
@Brian ManagedButton 与 s:Button 相同,除了标签、单击等之外还有一些额外的变量。我希望在按钮处于焦点时调用箭头键。
标签: actionscript-3 flash apache-flex actionscript flash-builder