0

我试图在 flex 中实现淡入淡出效果。我实现了一个淡入淡出效果,这样我每 10 秒就实现一次可见性。所以它的 alpha 从 0 到 1 和 1 到 0 需要 10 秒。我想要实现的是我想要showfade10 秒和 5 秒的hidefade效果。我怎样才能做到这一点?

我的淡化效果:

<s:Fade id="showFade" alphaFrom="0" alphaTo="1" duration="10000"  target="{rssTextRichText}"/>
<s:Fade id="hideFade" alphaFrom="1" alphaTo="0" duration="10000" target="{rssTextRichText}"/>

我的富文本:

<s:RichText id="rssTextRichText"  x="{(mainContainer.width/1920)*60}" y="{(mainContainer.height/1200)*90}" 
fontWeight="bold" fontSize="15" color="0x787878"                    
width="{(mainContainer.width/1920)*435}" height="{(mainContainer.height/1200)*240}"  verticalAlign="top" visible="false" showEffect="{showFade}" hideEffect="{hideFade}">                                   
</s:RichText>

我的间隔和切换方法开始效果:

var rssInterval:uint = setInterval(rssChanged, 10000);

public function rssChanged():void{

                rssTextRichText.visible = !rssTextRichText.visible;     
                setRSSLabel();
                rssTextRichText.visible = !rssTextRichText.visible;

            }

正如我所说,我想要 showFade 10 秒和 hideFade 5 秒。在 hideFade 之后,我希望 showFade 立即开始,而不是等待 5 秒。

谢谢您的帮助。

4

2 回答 2

0

如果我正确理解您的问题,请先将您的 hideFade 持续时间设置为 5000(5 秒)

<s:Fade id="hideFade" alphaFrom="1" alphaTo="0" duration="5000" target="rssTextRichText}"/>

对于第二部分,如果隐藏效果打开,您想要停止并从该点开始显示 showFade 效果,您可以捕获 EffectEvent.EVENT_START,停止隐藏效果并开始显示 showFade 效果:

function foo_handleEffectStart(e:EffectEvent):void {
 if(e.target == "showFade") {
   hideFade.stop();
   showFade.start(); // dunno if this is necessary or if the event starts anyway. 
 }
}
于 2013-06-24T06:39:14.830 回答
0

我的解决方案如下:(另外,应在所需的应用程序位置给出第一个触发器)

<s:Fade id="showFade" alphaFrom="0.5" alphaTo="1" duration="20000"  target="{rssTextRichText}" 
                effectEnd="showFade_effectEndHandler(event);" effectStart="showFade_effectStartHandler(event);"/>
        <s:Fade id="hideFade" alphaFrom="1" alphaTo="0" duration="1000" target="{rssTextRichText}" 
                effectEnd="hideFade_effectEndHandler(event);" effectStart="hideFade_effectStartHandler(event);"/>


    protected function showFade_effectStartHandler(event:EffectEvent):void
    {

        setRSSLabel();
        //testArea.text+="showFade effect start\n";


    }

    protected function hideFade_effectStartHandler(event:EffectEvent):void
    {

        //testArea.text+="hideFade effect start\n";

    }

    protected function showFade_effectEndHandler(event:EffectEvent):void
    {

        //testArea.text+="showFade effect end\n";               
        rssTextRichText.visible = !rssTextRichText.visible;

    }

    protected function hideFade_effectEndHandler(event:EffectEvent):void
    {

        //testArea.text+="hideFade effect end\n";       
        rssTextRichText.visible = !rssTextRichText.visible;
    }
于 2013-06-27T11:38:59.270 回答