【问题标题】:Get name value of event target- AS3获取事件目标的名称值 - AS3
【发布时间】:2011-04-16 13:01:59
【问题描述】:

我正在应用内实现一个文本显示区域,当用户将鼠标悬停在四个元素之一上时,该区域会显示选定的文本。我不想为每个元素创建处理程序函数,而是想获取调用处理程序的实例的名称以实现 switch 语句。我尝试了两种方法,但都不起作用:

//install event handlers
initialText.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
timeText.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
withdrawalText.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);


//also tried without toString, same result
var name:String= evt.target.name.toString();
var name=String= evt.currentTarget.name.toString();

这两个变量名都返回 undefined。但是,在调试器中,我可以通过 currentTarget.name 跟踪事件值,这显示了触发处理函数的实例,无论它是 withdrawalText, initialText or timeText。那么如何将名称值应用于变量以确定要显示的文本块呢?

【问题讨论】:

    标签: actionscript-3 event-handling


    【解决方案1】:
    for each (var field:TextField in [initialText, timeText, withdrawlText])
             field.addEventListener(MouseEvent.MOUSE_OVER, mouseOverEventHandler);
    
    function mouseOverEventHandler(evt:MouseEvent):void
    {
    switch (evt.currentTarget)
           {
           case initialText:      /*initialText specific code*/       break;
           case timeText:         /*timeText specific code*/          break;
           case withdrawalText:   /*withdrawalText specific code*/
           }
    }
    

    这是未经测试的,但只要您的文本字段实例变量的范围达到 mouseOverHandler,它就应该可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-02
      • 1970-01-01
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-31
      相关资源
      最近更新 更多