Apache flex 如何以编程方式使;“鼠标盖”;是否将项目添加到树/列表中的选定项目中?

Apache flex 如何以编程方式使;“鼠标盖”;是否将项目添加到树/列表中的选定项目中?,apache-flex,actionscript,tree,focus,Apache Flex,Actionscript,Tree,Focus,我想通过编程将树或列表中的选定项更改为鼠标指针下当前“标记/聚焦”的项。 我正在使用Flex Air独立应用程序 我的想法是: myTree.selectedItem=EVENT.TARGET(其中事件可以是鼠标翻转/右键单击/翻转事件,目标应该是当前鼠标指针下的节点/项目) 有没有办法做到这一点(或以任何其他方式) 啊,我不想点击左键;-) 提前谢谢大家,, 塞巴斯蒂安我觉得这很有趣,所以我想问这是否是实现这一目标的最简单方法。首先,您需要将滚动侦听器添加到ItemRenderer,而不是列表

我想通过编程将树或列表中的选定项更改为鼠标指针下当前“标记/聚焦”的项。 我正在使用Flex Air独立应用程序

我的想法是: myTree.selectedItem=EVENT.TARGET(其中事件可以是鼠标翻转/右键单击/翻转事件,目标应该是当前鼠标指针下的节点/项目)

有没有办法做到这一点(或以任何其他方式)

啊,我不想点击左键;-)

提前谢谢大家,,
塞巴斯蒂安

我觉得这很有趣,所以我想问这是否是实现这一目标的最简单方法。首先,您需要将滚动侦听器添加到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;             

        }