我在相关皮肤上有一个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" />
有什么建议吗?!
答案 0 :(得分:0)
问题在于SWFLoader正在捕捉鼠标事件。所以我只是将它放在Canvas中并为ItemRenderer设置mouseChildren="false"
。
同时将Canvas的滚动策略设置为0:
horizontalScrollPolicy="off" verticalScrollPolicy="off"
现在SWFLoader没有捕获鼠标事件,并且dropDownList中的悬停项不会相互重叠。
P.S:感谢我的一位同事帮助我:)