私が解決しようとしている基本的な問題は、Flex &のFlashコンポーネントが混在しており、コンポーネントに進行スピナーを追加するためのものです。したがって、コンポーネントがContainer
の場合は、rawChildren
に追加します。それ以外の場合は通常通り追加します。Flex 3:コンテナの「rawChildren」にスプライトを追加すると、代わりにcontent childrenに追加されることがあります
しかし、私はVBoxから継承するコンポーネントに問題があります。私は
cont.rawChildren.addChildAt(spinner, cont.rawChildren.numChildren);
を呼び出すしかし、私は子供をトレースするとき、私のスピナーはcont.getChildren()
に現れ、そしてcomp.numChildren
は明らかにも1ずつ増加します。他のコンテナは、他のVBoxコントロールであっても正しく動作するようです。
私はFlexフレームワークのコードを歩きましたが、これが継承またはタイミングのいずれかによって発生する理由を説明するための何も見つかりませんでした。
この場合、rawChildren
が予測できない可能性がある理由を説明する人がいますか?
ありがとうございました。
機能:
var bcu:Number = u.numChildren;
var bce:Number = el.numChildren;
el.addChildAt(s, ((pos > -1)?pos : el.numChildren));
trace("ADD NEW SPINNER", u, el, el.numChildren, u.numChildren, bce, bcu);
el
にするDisplayObjectまたは容器のrawChildrenオブジェクトのいずれかであり、そしてu
はスピナーが接続されている元のオブジェクトです。
出力:
ADD NEW SPINNER BlockMovePopup1734 [object ContainerRawChildrenList] 6 5 5 4
そして:
[Fault] exception, information=TypeError: Error #1034: Type Coercion
failed: cannot convert com.misc::[email protected] to mx.core.IUIComponent.
出力el
が正しくContainerRawChildrenList
に設定(VBox
用rawChildren
オブジェクト)とnumChildren
が[6,5]
対[5,4]
前であることであることを示していますコールに。これは、Sprite
がrawChildrenではなくコンテンツの子に追加されていることを意味します。
あなたは「内容の子供」の話をしていますか? あなたは「しかし、私はVBoxから継承するコンポーネントで問題に遭遇していますが、VBoxから拡張されたクラスで何が起こったのか正確に説明していません。 –
「コンテンツの子」は、rawChildrenに追加されるスキンなどは含まず、コンテナの通常の子です。私の拡張VBoxは本質的に単なるポップアップ/ツールチップタイプのものですが、子どもたちに特別なことは何もしません。最大4つのLinkButtonが含まれています。 – Glenn