0

我在相关皮肤上有一个 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" />

有什么建议吗?!

4

1 回答 1

0

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

horizontalScrollPolicy="off" verticalScrollPolicy="off"

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

PS:感谢我的一位同事帮助我:)

于 2013-06-11T08:51:15.577 回答