0

私が何をしても、トランジションは期待どおりに機能しません。問題を説明してから、コードを下部に配置します。

私のアプリケーションには4つの状態があります。

goButtonとにのみ存在"State1""State2"ます。

State1State2ほぼ同じですが、のyプロパティはgoButtonそれぞれで異なります。そこで、ボタンを前後に動かす小さなトランジションを作成しました。これまでのところ良い。

ただし、との両方 "State1""State2"に移行することもできます"State3"。しかし、にはないgoButtonので、とエフェクトを"State3"使用してそれを取り除きました。<s:Fade><s:RemoveAction>

から "State1"への移行は正常"State3"に機能しますが、からへの移行は機能しません"State2""State3"

からのトランジションを"State2"ちらつき/点滅ですぐに元の位置に戻そうとすると、実際にはトランジションのみが実行されます。"State3"goButton"State1""State3"

これは私のgoButton

<s:Button id="goButton" includeIn="State1,State2" x="319" y="212" width="33" height="33" click="goButton_clickHandler()" icon="@Embed('file:///C:/Users/Felipe/Downloads/1317358341_magnifier_medium.png')" toolTip="go" x.State2="319" y.State2="275"/>

これらは関連するトランジションです。

<s:Transition fromState="State1" toState="State3" >
            <s:Sequence>
                <s:Fade duration="700" targets="{[searchLabel,searchTextInput,inLabel,inDropDownList,goButton,addNewLessonButton]}" />
                <s:RemoveAction targets="{[searchLabel,searchTextInput,inLabel,inDropDownList,goButton,addNewLessonButton]}" />
                <s:AddAction targets="{[lessonsDataGrid,backButton]}" />
                <s:Fade duration="700" targets="{[lessonsDataGrid,backButton]}" />
            </s:Sequence>
        </s:Transition>

        <s:Transition fromState="State2" toState="State3" >
            <s:Sequence>
                <s:Fade duration="700" targets="{[searchLabel,searchTextInput,inLabel,inDropDownList,tagsLabel,tagsTextInput,goButton,addNewLessonButton]}" />
                <s:RemoveAction targets="{[searchLabel,searchTextInput,inLabel,inDropDownList,tagsLabel,tagsTextInput,goButton,addNewLessonButton]}" />
                <s:AddAction targets="{[lessonsDataGrid,backButton]}" />
                <s:Fade duration="700" targets="{[lessonsDataGrid,backButton]}" />
            </s:Sequence>
        </s:Transition>

私の推測では、Flexは、トランジションを実行する前に、常にコンポーネントを元の位置に戻します(理由は聞かないでください)。私はこのアプリの別のバージョンを試しました。そこでは、自分のプロパティxyプロパティをgoButtonそれらが含まれているものに"State2"設定してから、設定x.State1 = something elsey.State1 = something elseて何が起こるかを推測しますか?正確な逆問題が発生します!から"State2"への移行は問題ありませんが、からへ"State3"の移行は機能しません。ちらつきが元の位置(現在はの位置)に戻り、その後に移行が行われるためです。"State1""State3"goButton"State2"

男これは私を夢中にさせています。 _ __ _ __ _ __ _ __ _ __ _ __ // _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ __ _ __ _ __ _ __ _ __ _ __ _ // _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _

編集

アプリへのリンクを追加しました>>>>ここ<<<<<<オプション「選択したタグ」を選択してから「goButton」をクリックすると、問題を確認できます。あなたは私が話していることを見るでしょう。ソースを表示できます!!!

4

3 に答える 3

2

State3のgoButtonのx、yを探しているようです。明示的に設定しない場合は、デフォルトにフォールバックします。追加する

x.State3="{this.x}" y.State3="{this.x}"

私のためにそれを<s:Button id="goButton" ... />修正しました。

于 2011-10-28T03:51:31.573 に答える
2

あなたはこれを複雑にしすぎていると思います。ボタンにincludeIn="state1、state3"を設定するだけです。追加アクションは必要ありません。次に、goButtonをターゲットとして設定する1つのフェードトランジションを作成します。スパークフェードは、あなたの助けなしにその状況を処理する方法を理解するのに十分賢いです。

詳細については、 http://polygeek.com/2304_flex_simple-flex-4-component-checkeduncheckedを確認してください。

于 2011-10-24T11:43:49.487 に答える
0

>>> LL <<<<

OK私はこの振る舞いを選び出し、それがバグまたはグリッチだと信じています。

誰かが追加するものがあるかどうかを確認し、誰も表示されない場合はバグレポートを提出します。

再現する手順:

  • 異なるx、y座標で、2つの異なる状態で存在するボタンを作成します。x.State2 = somethingたとえば、ボタンにはxとyの値があり、他の状態でその位置を設定する必要があります。y.State2=something

  • 次に、State2(State1が元の状態の場合)からState3と呼ばれる3番目の状態への遷移を作成します。

  • トランジションには<s:Sequence>一連のステップが必要です。できれば、上記で使用したようなRemoveActionsとFadesを使用する必要があります。
于 2011-10-24T22:55:38.437 に答える