【问题标题】:One focus event listener for all input text field in ActionScript?ActionScript 中所有输入文本字段的一个焦点事件侦听器?
【发布时间】:2013-08-15 16:57:40
【问题描述】:

我在 Andreas 的帮助下完成了它。我还添加了更多代码来获取目标文本字段的默认文本值。当我专注时,这有助于我将目标字段的文本设置回默认值。谢谢“安德烈亚斯”。

import flash.events.FocusEvent;
import flash.text.TextField;

input1.addEventListener(FocusEvent.FOCUS_IN,inHand);
input1.addEventListener(FocusEvent.FOCUS_OUT,outHand);
//add all the other text input references like I did below...
input2.addEventListener(FocusEvent.FOCUS_IN, inHand);
input2.addEventListener(FocusEvent.FOCUS_OUT, outHand);

var def1:String = input1.text;
var def2:String = input2.text;

function inHand(evt:FocusEvent):void
{
var textField:TextField = TextField(evt.target);
textField.text = "";
}

function outHand(evt:FocusEvent):void
{
var textField:TextField = TextField(evt.target);
if(textField.text == "")
{
    switch(textField.name)
    {
        case "input1":
            textField.text = def1;
        break;

        case "input2":
            textField.text = def2;
        break;

        default:
        break;
    }

  }
}

【问题讨论】:

  • 我认为您将不得不遍历所有孩子,看看他们是否在那里并且是文本字段并将事件应用于他们。

标签: actionscript-3 flash textfield dynamic-text


【解决方案1】:

是的,通过简单的引用FocusEvent中提供的displayObject,我们就可以获得对悬停对象的引用。这允许您创建对悬停对象的通用引用,最终允许您将其放置在任意数量的 TextField 上。

import flash.events.FocusEvent;
import flash.text.TextField;

input1.addEventListener(FocusEvent.FOCUS_IN,inHand);
input1.addEventListener(FocusEvent.FOCUS_OUT,outHand);
//add all the other text input references like I did below...
input2.addEventListener(FocusEvent.FOCUS_IN, inHand);
input2.addEventListener(FocusEvent.FOCUS_OUT, outHand);

var def1:String = "Your text value here";

function inHand(evt:FocusEvent):void
{
    var textField:TextField = TextField(evt.target);
    textField.text = "";
}

function outHand(evt:FocusEvent):void
{
    var textField:TextField = TextField(evt.target);
    if(textField.text == "")
    {
        textField.text = def1;
    }
}

【讨论】:

  • 感谢您的重播。但我遇到了一个问题。它相反。在输出窗口中出现如下错误消息: * * *TypeError:错误 #1009:无法访问空对象引用的属性或方法。在 Untitled_1_fla::MainTimeline/inHand() 类型错误:错误 #1009:无法访问空对象引用的属性或方法。在 Untitled_1_fla::MainTimeline/outHand()
  • @albhee 我已更正代码以修复您遇到的错误。我错误地使用了relatedObject 而不是target。
猜你喜欢
  • 1970-01-01
  • 2014-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多