Apache flex 如何以编程方式使;“鼠标盖”;是否将项目添加到树/列表中的选定项目中?
我想通过编程将树或列表中的选定项更改为鼠标指针下当前“标记/聚焦”的项。 我正在使用Flex Air独立应用程序 我的想法是: myTree.selectedItem=EVENT.TARGET(其中事件可以是鼠标翻转/右键单击/翻转事件,目标应该是当前鼠标指针下的节点/项目) 有没有办法做到这一点(或以任何其他方式) 啊,我不想点击左键;-) 提前谢谢大家,,Apache flex 如何以编程方式使;“鼠标盖”;是否将项目添加到树/列表中的选定项目中?,apache-flex,actionscript,tree,focus,Apache Flex,Actionscript,Tree,Focus,我想通过编程将树或列表中的选定项更改为鼠标指针下当前“标记/聚焦”的项。 我正在使用Flex Air独立应用程序 我的想法是: myTree.selectedItem=EVENT.TARGET(其中事件可以是鼠标翻转/右键单击/翻转事件,目标应该是当前鼠标指针下的节点/项目) 有没有办法做到这一点(或以任何其他方式) 啊,我不想点击左键;-) 提前谢谢大家,, 塞巴斯蒂安我觉得这很有趣,所以我想问这是否是实现这一目标的最简单方法。首先,您需要将滚动侦听器添加到ItemRenderer,而不是列表
塞巴斯蒂安我觉得这很有趣,所以我想问这是否是实现这一目标的最简单方法。首先,您需要将滚动侦听器添加到ItemRenderer,而不是列表本身,而不是列表(因为event.target和event.currentTarget将只显示您的列表) 因此,让我们创建一个自定义ItemRenderer并添加一个滚动侦听器
<xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
autoDrawBackground="true" height="20" rollOver="itemrenderer1_rollOverHandler(event)">
<fx:Script>
<![CDATA[
protected function itemrenderer1_rollOverHandler(event:MouseEvent):void
{
this.dispatchEvent(new CustomEvent(CustomEvent.SELECT_ITEM, data, true));
}
]]>
<s:Label id="label1" text="{data.label}"/>
</s:ItemRenderer>
然后,我向主类添加了一个eventListener,并相应地设置了list.selectedItem属性:
//for the main MXML initializer:
this.addEventListener(CustomEvent.SELECT_ITEM, rollOverChangeSelected);
//and the function:
protected function rollOverChangeSelected(ce:CustomEvent):void{
list.selectedItem = ce.selectedItem;
}
另一种方式:可绑定变量
名单如下:
s:List id="list" allowMultipleSelection="true" selectionColor="red" rollOverColor="red" itemRenderer="customItemRenderer" selectedItem="{_rollOverSelectedItem}">
变量和set/get方法:
[Bindable] public var _rollOverSelectedItem:Object;
public function get rollOverSelectedItem():Object
{
return _rollOverSelectedItem;
}
public function set rollOverSelectedItem(value:Object):void
{
_rollOverSelectedItem = value;
}
以及ItemRenderer的滚动方法:
protected function itemrenderer1_rollOverHandler(event:MouseEvent):void
{
this.parentApplication.rollOverSelectedItem = data;
}
什么是最好的/合适的方式?欢迎来到SO!如果你方能多做些努力,我们将不胜感激。我认为你的方向是正确的。
protected function itemrenderer1_rollOverHandler(event:MouseEvent):void
{
this.parentApplication.rollOverSelectedItem = data;
}