0

フレックスにフェード効果を実装しようとしています。10 秒ごとに可視性の道具を取るようなフェード効果を実装しました。したがって、そのアルファは 0 から 1 および 1 から 0 まで 10 秒かかりshowfadeます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;

            }

私が言ったように、10秒間のshowFadeと5秒間のhideFadeが必要です。hideFade の後、showFade を 5 秒待たずにすぐに開始したい。

ご協力ありがとうございました。

4

2 に答える 2

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 に答える
0

あなたの質問が正しく理解できたら、まず hideFade の持続時間を 5000 (5 秒) に設定してください

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

2 番目の部分では、非表示効果がオンの場合は停止し、その時点から 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 に答える