我对s:Fade
事件s:ItemRenderer
上的mouseOver
效果。淡入淡出效果结束很好,但在执行期间,它仅应用于ItemRenderer
对象的一半,加上一半相邻(右)ItemRenderer
。
ItemRenderer
个对象位于使用s:List
的{{1}}内。
以下是名为HorizontalLayout
的{{1}}的代码:
ItemRenderer
以下是FilterTagRenderer
的代码:
<?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="false"
mouseOver="{fadeIn.play()}"
mouseOut="{alpha = 0.6}"
alpha="0.6">
<fx:Declarations>
<s:Fade id="fadeIn" alphaTo="1" duration="500" target="{this}"/>
</fx:Declarations>
<s:Label id="lblFilterName" text="{data}" paddingBottom="5" fontWeight="bold" fontSize="14"/>
</s:ItemRenderer>
我使用的是Flex SDK 4.0。
有谁知道这是flex中的错误还是我做错了什么?
由于
答案 0 :(得分:0)
你做的事情有点不对,因为使用Spark组件你应该让状态改变运行,而不是试图自己运行它。但是,引擎盖下的效果只是单个DisplayObject上的一个过滤器,因此我不确定如何获得部分在两个不同对象上的效果。您的渲染器可能不在您认为的位置。如果您使用Flex附带的布局之一会发生什么,例如TileLayout?
答案 1 :(得分:0)
好像是一个错误。
重现步骤:只需编译并运行以下两个文件,然后将鼠标移到任何单词上。
申请文件(FadeBug.mxml):
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
]]>
</fx:Script>
<s:List dataProvider="{new ArrayCollection('The quick brown fox jumped over the lazy dog'.split(' '))}"
itemRenderer="BuggyItemRenderer" >
<s:layout>
<s:HorizontalLayout gap="6"/>
</s:layout>
</s:List>
</s:Application>
BuggyItemRenderer.mxml:
<?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="false"
alpha="0.4"
mouseOver="{fadeEffect.play()}"
mouseOut="itemrenderer1_mouseOutHandler(event)">
<fx:Script>
<![CDATA[
protected function itemrenderer1_mouseOutHandler(event:MouseEvent):void
{
if (fadeEffect.isPlaying) {
fadeEffect.stop();
}
this.alpha = 0.4;
}
]]>
</fx:Script>
<fx:Declarations>
<s:Fade id="fadeEffect" target="{this}" alphaFrom="0.4" alphaTo="1"/>
</fx:Declarations>
<s:Label text="{data}" fontSize="25" fontWeight="bold"/>
</s:ItemRenderer>