Actionscript 3 从AS3中的文本区域移除焦点
我在Flash CS5表单中有几个文本区域,如果用户在表单的其他地方单击,我想从最后选择的文本区域中删除焦点。我怎样才能做到这一点?假设你的舞台就是你的身体: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 {
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