DropDownList的itemRenderer的项目悬停

时间:2013-06-07 08:34:51

标签: flex drop-down-menu mouseover itemrenderer swfloader

我在相关皮肤上有一个DropDownList和一个itemRenderer。我的itemRenderer的项目是SWFLoader对象,它显示我的DropDownList中的swf文件。 每行的高度必须是27px,所以我减小了我的SWFLoader对象的高度和宽度,使它们适合每一行,并设置了这些atts:

verticalCenter="2" verticalAlign="middle"

在每一行中对齐它们。但是由于我的SWFLoader的内容有不同的宽度/高度,我有项目鼠标悬停的问题,它们相互重叠。我也为我的SWFLoader设置了这些,但仍然没有变化:

mouseEnabled="false" mouseChildren="false"

以下是我的代码简介:

<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="27" width="100%">
<fx:Script>
    <![CDATA[           
        override public function set data(value:Object):void{
            super.data = value;
            // rest of codes
        }           
    ]]>
</fx:Script>

<s:SWFLoader left="5" right="5"
             height="65"
             verticalCenter="2" verticalAlign="middle"
             mouseEnabled="false" mouseChildren="false" 
             source="{data}" smoothBitmapContent="true" />

有什么建议吗?!

1 个答案:

答案 0 :(得分:0)

问题在于SWFLoader正在捕捉鼠标事件。所以我只是将它放在Canvas中并为ItemRenderer设置mouseChildren="false"。 同时将Canvas的滚动策略设置为0:

horizontalScrollPolicy="off" verticalScrollPolicy="off"

现在SWFLoader没有捕获鼠标事件,并且dropDownList中的悬停项不会相互重叠。

P.S:感谢我的一位同事帮助我:)