0

什么是目标实例?我有点困惑。它是“参数”吗?

在这段代码中,目的是event.target什么?它有什么作用?

addEventListener(MouseEvent.MOUSE_OVER , hover);
function hover(event:MouseEvent):void
{
    event.target.alpha = .4;
    trace("Now over " + event.target.name);
}

addEventListener(MouseEvent.MOUSE_OUT , normal);
function normal(event:MouseEvent):void
{
    event.target.apha = 1;
    trace("Now Off " + event.target.name);
}
4

2 回答 2

0

事件目标是事件起源的对象。对于事件流,这是阶段从捕获切换到冒泡的地方。

因此,在鼠标悬停/移出事件的情况下,这就是鼠标实际悬停/移出的位置。由于捕获/冒泡,这不需要是您将事件侦听器附加到的对象(可通过 访问currentTarget)。


回应您的评论:

event只是一个对象,它包含有关已发生的特定事件(在您的情况下为鼠标悬停/移出事件)的一些信息,并作为参数传递给事件处理程序,因此它可以查询有关事件的一些信息。

任何类型的对象Event都有一个属性,该属性target是对在此特定事件实例中充当目标的对象的引用。对于鼠标事件,这通常是显示列表中的一些可视对象(例如另一个影片剪辑、形状或按钮)。这些显示对象具有获取或设置其透明度值的属性,使它们在显示时透明或不透明。alpha

因此,当您将所有这些链接起来时,您会event.target.alpha首先获得事件实例,获得其目标,然后是所述目标的 alpha 值。同样,还有event.target.namewhich 获取事件目标的名称。

于 2013-06-23T20:43:47.907 回答
0

target是一个属性Event

在您的处理程序函数(您在 时引用的函数addEventListener)中,您必须接受一个参数,即Event. 当由于派发相关事件而调用处理程序函数时,会为其提供对该事件的引用。

function hover(event:MouseEvent):void
// ------------^^^^^ This parameter refers to the dispatched Event.

通过该引用,您可以访问已调度事件的属性,其中之一是target我前面提到的。

事件目标。此属性包含目标节点。例如,如果用户单击确定按钮,则目标节点是包含该按钮的显示列表节点。

在大多数情况下,使用 Event 的属性通常更合适currentTarget,它指的是您添加事件侦听器的对象。

于 2013-06-23T22:45:24.473 回答