什么是Target实例?我有点困惑。它是'参数'吗?
在这段代码中,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);
}
答案 0 :(得分:0)
事件目标是事件源自的对象。对于event flow,这是相位从捕获切换到冒泡的地方。
因此,在鼠标过度/结束事件的情况下,这是鼠标实际悬停在其上的位置。由于捕获/冒泡,这不需要是您附加事件监听器的对象(可以通过currentTarget
访问)。
回应你的评论:
event
只是一个对象,它包含有关已发生的特定事件的某些信息(在您的情况下是鼠标悬停事件),并作为参数传递给事件hanlder,因此它可以查询有关该事件的一些信息。
Event
类型的任何对象都有一个属性target
,它是 对象的引用,作为此特定事件中的目标实例。对于鼠标事件,这通常是显示列表中的一些可视对象(例如,另一个动画片段,形状或按钮)。那些display objects有一个属性alpha
,用于获取或设置其透明度值,使其在显示时变为透明或不透明。
所以,当你把所有这些链接起来时,你得到event.target.alpha
,它首先得到事件实例,得到它的目标,然后得到所述目标的alpha值。同样,event.target.name
获取事件目标的名称。
答案 1 :(得分:0)
在你的处理函数(你addEventListener
时引用的函数)中,你必须接受一个参数,即Event
。当调度处理函数作为调度相关事件的结果时,会给它一个对该事件的引用。
function hover(event:MouseEvent):void
// ------------^^^^^ This parameter refers to the dispatched Event.
通过该引用,您可以访问已调度事件的属性,其中一个是target
,如前所述。
事件目标。此属性包含目标节点。例如,如果用户单击“确定”按钮,则目标节点是包含该按钮的显示列表节点。
在大多数情况下,使用Event的currentTarget
属性通常更合适,该属性引用您添加事件侦听器的对象。