目标陈述。这是什么意思? - ActionScript

时间:2013-06-23 20:36:00

标签: actionscript-3 flash actionscript

什么是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);
}

2 个答案:

答案 0 :(得分:0)

事件目标是事件源自的对象。对于event flow,这是相位从捕获切换到冒泡的地方。

因此,在鼠标过度/结束事件的情况下,这是鼠标实际悬停在其上的位置。由于捕获/冒泡,这不需要是您附加事件监听器的对象(可以通过currentTarget访问)。


回应你的评论:

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

Event类型的任何对象都有一个属性target,它是 对象的引用,作为此特定事件中的目标实例。对于鼠标事件,这通常是显示列表中的一些可视对象(例如,另一个动画片段,形状或按钮)。那些display objects有一个属性alpha,用于获取或设置其透明度值,使其在显示时变为透明或不透明。

所以,当你把所有这些链接起来时,你得到event.target.alpha,它首先得到事件实例,得到它的目标,然后得到所述目标的alpha值。同样,event.target.name获取事件目标的名称。

答案 1 :(得分:0)

targetEvent

的属性

在你的处理函数(你addEventListener时引用的函数)中,你必须接受一个参数,即Event。当调度处理函数作为调度相关事件的结果时,会给它一个对该事件的引用。

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

通过该引用,您可以访问已调度事件的属性,其中一个是target,如前所述。

  

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

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