我一直在尝试为通用应用构建一个非常简单的页脚,当用户将鼠标悬停在应用程序的宽度上时,该应用程序会“增长”。这个简单的片段似乎可以解决问题:
<?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"
currentState="normal">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
private const _lipWidth:Number = 8.64;
]]>
</fx:Script>
<s:states>
<s:State name="other"/>
<s:State name="normal"/>
</s:states>
<s:Group width="100%" bottom="0" rollOut="currentState = 'normal'" rollOver="currentState = 'other'">
<s:Path id="LargeRibbon" x="0" bottom="0" width="100%" includeIn="other"
data="M {width - _lipWidth} 0 L {_lipWidth} 0 C 3.951 0 0.149 3.721 0 8.363 L 0 40 L {width} 40 L {width} 8.489 C {width - 0.08} 3.787 {width - 3.92} 0 {width - _lipWidth} 0 Z">
<s:fill>
<s:SolidColor color="blue"/>
</s:fill>
</s:Path>
<s:Path id="SmallRibbon" width="100%" x="0" y="0" includeIn="normal"
data="M {width - _lipWidth} 0 L 8.629 0 C 3.951 0 0.149 3.72 0 {_lipWidth} L 0 20 L {width} 20 L {width} 8.489 C {width - 0.08} 3.787 {width - 3.92} 0 {width - _lipWidth} 0 Z">
<s:fill>
<s:SolidColor color="gray"/>
</s:fill>
</s:Path>
</s:Group>
</s:Application>
但是,如果我尝试在LargeRibbon路径中添加阴影
<s:filters>
<s:DropShadowFilter alpha="0.15" angle="-90" blurX="2" blurY="2" distance="1" quality="2"/>
</s:filters>
事情停止工作 - 更具体地说,如果你启动应用程序,将鼠标悬停在页脚上,放大应用程序,然后再次将鼠标悬停在页脚上,LargeRibbon似乎没有正确调整大小。很想知道为什么会这样,而且更普遍的是会喜欢任何关于这个组/路径组合是否有意义的建议。
谢谢
答案 0 :(得分:1)
此代码可以正常工作:
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
private const _lipWidth:Number = 8.64;
]]>
</fx:Script>
<s:states>
<s:State name="other"/>
<s:State name="normal"/>
</s:states>
<s:Group width="100%" bottom="0" rollOut="currentState = 'normal'" rollOver="currentState = 'other'">
<s:filters.other>
<s:DropShadowFilter alpha="0.15" angle="-90" blurX="2" blurY="2" distance="1" quality="2" />
</s:filters.other>
<s:Path id="LargeRibbon" x="0" bottom="0" width="100%" includeIn="other"
data="M {width - _lipWidth} 0 L {_lipWidth} 0 C 3.951 0 0.149 3.721 0 8.363 L 0 40 L {width} 40 L {width} 8.489 C {width - 0.08} 3.787 {width - 3.92} 0 {width - _lipWidth} 0 Z">
<s:fill>
<s:SolidColor color="blue"/>
</s:fill>
</s:Path>
<s:Path id="SmallRibbon" width="100%" x="0" y="0" includeIn="normal"
data="M {width - _lipWidth} 0 L 8.629 0 C 3.951 0 0.149 3.72 0 {_lipWidth} L 0 20 L {width} 20 L {width} 8.489 C {width - 0.08} 3.787 {width - 3.92} 0 {width - _lipWidth} 0 Z">
<s:fill>
<s:SolidColor color="gray"/>
</s:fill>
</s:Path>
</s:Group>
为什么它不能直接在LargeRibbon
中放置过滤器,我建议它是某种位图缓存问题。