我们可以通过点击其他对象获得焦点被盗的对象吗?动作脚本

时间:2010-08-23 04:39:03

标签: flex actionscript-3

例如我有一个Textinput有id =“

的对象
  

id_txtBox

“,以及一个有很多孩子的面板(TextInputs,Trees,Buttons等).. 如果用户在某个面板的子项中编辑文本,然后clik on“id_txtBox”。我们可以了解

  

id / object用户之前正在编辑   点击“id_txtBox

“。我的意思是”id_txtBox“从哪个对象中偷了焦点。?

2 个答案:

答案 0 :(得分:1)

为每个子节点添加一个事件侦听器,它将通过获取所单击元素的名称来更新currentChild属性。


 var previousChild:DisplayObject;
 var currentChild:DisplayObject;

 panelChild.addEventListener(MouseEvent.CLICK , clickHandler );

private function clickHandler(event:MouseEvent):void
{ 
  //to avoid an error on the first click
  if(currentChild != null )
     previousChild = currentChild;

  // do whatever you need to do here, after it's complete, update the currentChild value;
  // this way the previousChild value indicates the object that was clicked before

  currentChild = this.getChildByName(event.currentTarget.name );
}

答案 1 :(得分:0)

您可以在内部维护焦点对象的历史记录。因此,每当对象获得焦点时,将其添加到历史记录中。因此,如果要查询哪个对象,当前焦点对象有被盗焦点,则需要检查历史记录中的上一个对象。您可以根据需要设置历史记录以根据需要存储任意数量的对象,并保持删除最旧的对象历史记录超出其大小。