2012-03-30 17 views
2

私はFlex 4.5を使用しており、新しい状態グループ機能を利用しようとしています。私は2つのState(readType1とreadType2と呼ぶ)を持っていて、両方が同じstateGroupに属している(readOnlyと呼ぶ)。現在の状態に基づいて何かしたい場所がいくつかあり、2つの読み取り状態で同じことになります。例えば:それはstateGroupに基づいているように(論理的にそれはそれはない実際の正確な状態に、基づいているものは本当にだから)簡単な方法でこれを変更する方法があります場合、私は思ったんだけど何現在の状態の状態グループまたは実際の状態オブジェクトを簡単に取得する方法はありますか?

if (this.currentState == "readType1" || this.currentState == "readType2") 
{ 
    //do stuff 
} 

があります。私は現在stateGroupの名前を取得する方法を見つけることができませんでした、またのネタを取得するために

if (this.currentStateGroup == "readOnly") 
{ 
    //do stuff 
} 

または失敗

if (this.currentStateObject.stateGroups.indexOf("readOnly") >= 0) 
{ 
    //do stuff 
} 

こと:私のような何かをしたいと思います実際のState現在の状態(currentStateは単なる文字列)のオブジェクトで、ループなしでthis.statesになります。私は何かが欠けていると思っており、これを簡単に手に入れる方法があります...

これは国家グループが手伝ってくれるものと思っていました。あるいは、私は国家グループのポイントを誤解していますか?それらには多くの例や情報がありません。私が見つけた例は、実際のアプリケーションでそれらをどのように使用するのかを実際に理解するのには十分ではありませんでした。

誰かが私が欲しいものをやり遂げる方法を知っていれば、私はそれを感謝するでしょう、または私がこのすべてを間違って考えているなら、私に教えてください。ありがとう。

+0

はい、そうですが、MXML表記で使用することを意図しています。技術的には、ActionScriptで状態を使用できますが、あなたが指摘したように、それは意図した通りではないので、複雑なものです。おそらく、達成しようとしていることについてより具体的に考えるべきでしょう。 ActionScriptコードを使用せずにどのように処理されるかを示すことができます。 – RIAstar

+0

@RIAstar私は、ActionScriptなしでこれを完全に行う良い方法はないだろうと考えています...現在の状況に基づいて、さまざまな方法(アイコン、有効/無効など)で変化するさまざまなコンポーネントがあります状態グループ。 ETAステートグループやステートがActionScriptで使用されない理由について詳しく説明できますか?私はこれを本当に理解していない。 – Maltiriel

答えて

1

おそらく、あなたはそれの耳にこの問題を変えることができます:適切な状態に入るとき

はあなたの仕事を行います。 MXMLでは、stateGroupに属する各状態に「enterState」リスナーを使用します。

<s:states> 
    <s:State name="readType1" enterState="onEnterReadState()" stateGroups="readGroup"/> 
</s:states> 
+0

これはこれを実行する最善の方法かもしれません...私はenterStateイベントがあることを認識していませんでした。 – Maltiriel

関連する問題