Actionscript 3 从AS3中的文本区域移除焦点

Actionscript 3 从AS3中的文本区域移除焦点,actionscript-3,textarea,flash-cs5,Actionscript 3,Textarea,Flash Cs5,我在Flash CS5表单中有几个文本区域,如果用户在表单的其他地方单击,我想从最后选择的文本区域中删除焦点。我怎样才能做到这一点?假设你的舞台就是你的身体: function setEventListeners():void { stage.addEventListener(MouseEvent.CLICK, mouseUpEventHandler); } function mouseUpEventHandler(evt:MouseEvent):void {

我在Flash CS5表单中有几个文本区域,如果用户在表单的其他地方单击,我想从最后选择的文本区域中删除焦点。我怎样才能做到这一点?

假设你的舞台就是你的身体:

function setEventListeners():void
    {
    stage.addEventListener(MouseEvent.CLICK, mouseUpEventHandler);
    }

function mouseUpEventHandler(evt:MouseEvent):void
    {
    if  (!evt.bubbles)
        stage.focus = null;
    }

否则,将事件侦听器添加到将textFields作为其子对象而不是阶段的窗体对象。

您需要某种形式的标识符才能知道上次单击TextField的时间。这将允许您设置条件

我在这里给出的示例不仅处理焦点,还重置了字段的tabIndex,这在取消提交时非常方便&如果用户使用TAB在字段之间导航,您不希望焦点位于表单的中间

     //This Vector will hold your TextFields
     private var fields:Vector.<TextField>;
     private var fieldsDisabled:Boolean;

     private function clickHandler( event:MouseEvent ):void
     {
         if( event.currentTarget.name == "Last" )
         {
             enableTabs( false );
             fieldsDisabled == true;

         } else if ( fieldsDisabled )
         {
             enableTabs( true );
             fieldsDisabled == false;
         }
     }

     private function enableTabs( enabled:Boolean ):void
     {
         //provided the fields Vector has been populated...
         for( var i:int ; i < fields.length ; ++i )
              fields[i].tabEnabled = enabled;
     }
//此向量将保存您的文本字段
私有变量字段:向量。;
私有变量字段禁用:布尔值;
私有函数clickHandler(事件:MouseeEvent):void
{
如果(event.currentTarget.name==“Last”)
{
启用选项卡(假);
fieldsDisabled==true;
}else if(字段禁用)
{
启用选项卡(true);
fieldsDisabled==false;
}
}
专用函数启用选项卡(启用:布尔):无效
{
//如果字段向量已填充。。。
for(变量i:int;i