我是动作脚本3.0的新手。我有以下代码:
num0.addEventListener(MouseEvent.CLICK, num0_click);
function num0_click(event:MouseEvent):void
{
trace(num0);
}
num0
是在舞台上手动添加的动画片段,而不是任何其他动画片段的成员。
我的输出是null
。
您能否解释一下情况,并教我如何在这样的函数中访问num0
。
修改
奇怪的是,如果不用作事件监听器,该函数可以正常工作:
trace(num0);
num0.addEventListener(MouseEvent.CLICK, num0_click);
function num0_click(event:MouseEvent):void
{
trace(num0);
}
num0_click(null);
输出如下
[object ...]
[object ...]
并且单击影片剪辑实例num0
(在swf上):
null
答案 0 :(得分:0)
很简单,
event.currentTarget
为您提供当前正在处理/处理该事件的对象。
由于您的事件处理程序num0_click
已附加到num0
,event.currentTarget
将返回您需要的内容。
修改强>
对num0
的引用不会存储在任何地方(来自您提供的代码)。如果您想稍后再次使用该名称访问num0
,则必须在类范围内声明一个类似的变量(或者如果您不使用类,则在所有函数之外)。
var num0:MovieClip;
然后,您可以实例化它并在任何函数中引用它:
function init():void {
num0=new MovieClip();
}
function stop():void {
num0.stop();
}
编辑2 您还可以在addEventListener中声明侦听器函数。
num0.addEventListener(MouseEvent.CLICK, function (event:MouseEvent):void {
trace(num0);
});