0

ボタンを切り替えるだけで2つの状態間を移行するフレックスアプリがあります。私の問題は、フェージングの効果は2番目以降の遷移でのみ機能するように見えることです。ただし、最初の遷移では... State1からstudyStateに移行します...フェード効果はまったくありません。実際、state1のコンポーネントは完全に消え(フッターは「ボディ」があった空のギャップを埋めます)、その後フレックスはstudyStateを再作成します(studyStateのみのコンポーネントで「ボディ」をフェードリフィルすることはありません)。

ただし、この最初の移行後、studyStateとState1の間を完全に正常に機能します。なぜこれが発生するのでしょうか。また、クロスフェードが最初の移行から開始して機能するようにするにはどうすればよいですか。助けてください!

 <s:transitions>
 <s:Transition id="t1" autoReverse="true">
 <s:CrossFade
  target="{holder}" 
  duration="1500" />
 </s:Transition>
 </s:transitions>
 <s:states>
 <s:State name="State1" />
 <s:State name="studyState" />
 </s:states>

<s:VGroup id="globalGroup" includeIn="State1" width="100%">stuff</Vgroup>
<s:VGroup id="studyGroup" includeIn="studyState" width="100%">stuff</Vgroup>
4

1 に答える 1

1

状態遷移の何が問題になっていますか? 完全なコード サンプルを提供できますか?

このコード セグメントは、基本的に、私が期待したとおりに動作します。

<?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">

<s:transitions>
    <s:Transition id="t1" autoReverse="true">
        <s:CrossFade
            target="{this}" 
            duration="1500" />
    </s:Transition>
</s:transitions>
<s:states>
    <s:State name="State1" />
    <s:State name="studyState" />
</s:states>

<s:VGroup id="globalGroup" includeIn="State1" width="100%">
    <s:Button label="State1 to studyState" click="this.currentState = 'studyState'" />
</s:VGroup>
<s:VGroup id="studyGroup" includeIn="studyState" width="100%">
    <s:Button label="studyState to State1" click="this.currentState = 'State1'"  />
</s:VGroup>


</s:Application>
于 2010-05-19T02:28:46.003 に答える