2011-06-24 10 views
1

現在、Flex 3から4へのコードの移行を行っており、ポップアップの初期化機能でcurrentStateを設定しています。Flexエラー:Flex 3から4への移行で2025

コードは、私はフレックス4.5sdkでコードをコンパイルし始めるまでのコードのこの作品は、罰金働いていた

<mx:State name="xyz"> 
    <!-- I remove some children and add some children before this --> 
    <mx:AddChild relativeTo="{form}" position="lastChild" 
       creationPolicy="all"> 
    <mx:FormItem id="childId" 
      label="Frequency"> 
     <mx:ComboBox id="cmbId" 
          dataProvider="{dataP}" 
       selectedIndex="0" 
          change="function()"/>          </mx:FormItem> 
</mx:AddChild> 

currentState = "xyz"; 

// Now I try to access child which I am adding in "xyz" state definition. 
var childIndex:int = form.getChildIndex(childId); // this throws error 2025 

状態の定義、このようなものです。それ以来、私はエラー#2025を投げます。

任意のポインタ?

+0

'id =" form "'を持つソースコードを追加できますか? 'childId'の値が' form'にあるインデックスであることを確認できますか? – mrk

+0

@ Mrk: Miral

+0

コードにid = "childId"のformItemを追加しています。誰もそれが間違っていることを示唆することはできますか? – Miral

答えて

0

creationCompleteメソッドでchildIdのgetChileIndexを試みたところ、うまくいきました。初期化フェーズでは、状態の子インデックスにアクセスしようとしているため、子が状態に配置されていない可能性があるため、エラーが発生するようです。

+0

しかし、この特定の問題は、flex 4.5 sdkを使用してコードをコンパイルしたときに発生し、flex 3 sdkでコンパイルしたときにエラーなしで動作していました。お役に立てれば。 – Miral

0

form.childIndex(childId)に電話する前に.parentchildIdのものであることを把握する必要があります。もう一度あなたの答えを更新して含まれ、

trace("parent of childId " + childId.parent); 
form.childIndex(childId); 

さも:#2025エラーがたchildIDの親は、あなたがは、getChildIndex呼び出しの前trace("parent of childId " + childId.parent)を追加form.getChildIndex(childId)

てみてくださいを呼び出している時にはformではないことを知らせるべきですchildIdが直接の子孫であることを示すformのMXML?

+0

提案のおかげでMrk、私はこの問題のための回避策を得た。私はそれを2日間投資しましたが、驚いたことに、creationCompleteメソッドでchildIdのgetChileIndexを試みるとうまくいきました。初期化フェーズでは動作していないようです。興味深いのは、私の現在のコードはflex 4.5sdkでコンパイルされていますが、これはflex 3sdkとうまくいっていましたが、この問題が発生しました。私は明日の提案を明日お試しになります。ありがとうございます。 – Miral

+0

"childId.parent"をトレースしたとき、nullを返しました。 – Miral