2016-07-13 25 views
0

我有一个火花List控件,显示ListEvent.ITEM_ROLL_OVER事件的旁边列表。基本它显示了你正在盘旋的物品的内容。我也将使用ListEvent.ITEM_ROLL_OU T再次隐藏它,但我希望用户也能够点击它(旁边列表)。我应该使用轻量级的InteractiveObject的哪个实现来跟踪flex中的mousefocus?

所以,我用MouseEvent.ROLL_OU T和检查event.relatedObject的ID可以看到光标走到哪里。我添加了一个不可见的Rectangle,覆盖了更大的边界列表,因此它获得了第一个焦点。但事实并非如此。

谷歌搜索,我认为火花矩形不能获得焦点,因为它没有实现InteractiveObject。我应该使用什么?

我的逻辑:

protected function listOUT(event:MouseEvent):void 
{ 
    var obj:Object = event.relatedObject; 
    if (obj.id != "focusRect") 
    { 
     sidelist.visible = false; 
    } 
} 

我的斗争是保持sidelist可见,如果用户从主列表中sidelist移动​​光标。 我的方法之外的任何其他建议也是受欢迎的。

更新 (图像链接) Red are the invisible Buttons

+0

我有个主意。但我承认我不知道火花表是什么。问题:用户点击旁边列表时应该发生什么事件? –

+0

这只是一个标准的列表。 AFlashBuilder中列表的其他变体是mx列表。将会有一个MouseEvent.CLICK,但这不是问题,因为它很简单* dispatch-event * to * event-listener * action。 –

+0

我明白了。您无法点击该列表,因为它在滚动时正在消失。嗯......你可以做一些布尔类似的东西来响应舞台上鼠标的x和y坐标吗? –

回答

0
  • 论ROLL_OVER在mainlist选择项目,显示基于在所述mainlist的selectedItem属性sidelist 。
  • 当主列表中没有选定项目时,隐藏旁边列表。
  • 如果边栏失去焦点,取消选择主要清单中的项目。

此外mx.core.UIComponent是调度焦点事件的最轻的组件。

+0

我可以看到一个问题,因为用户不一定需要单击旁边列表。如果他从来没有悬停在它上面,它会在不需要时保持可见。 –

+0

好吧,我明白了!向剩余边添加3个不可见按钮将会在其mouse_over事件中隐藏边列表。我用图像更新了这篇文章。 –

+0

将焦点添加到roll_over上的旁边列表中。然后,如果用户从未单击过旁边列表,您将收到focus_out。这3个不可见的按钮阻止了对基本组件的交互。这可能会在后期造成混乱。 –

相关问题