我試圖解決的基本問題是,我有一個Flex組合的Flash &,並且我有一個通用函數用於向組件添加進度微調器,無論如何。因此,如果組件是Container
,我將它添加到rawChildren
,否則正常添加它。Flex 3:向容器的「rawChildren」添加精靈有時會將其添加到內容子代
但是,我遇到了一個從VBox繼承的組件的問題。我叫
cont.rawChildren.addChildAt(spinner, cont.rawChildren.numChildren);
但是,當我找到這些兒童,我的微調顯示了在cont.getChildren()
,並且comp.numChildren
顯然也由一個增加。而其他容器似乎可以正常工作,甚至是其他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
(該rawChildren
對象爲VBox
),並且所述numChildren
是現有[6,5]
VS [5,4]
來電。這意味着Sprite
正被添加到內容子節點而不是rawChildren。
你在談論哪些「內容孩子」? 你說「但是,我遇到了一個VBox繼承的組件的問題」,但是你沒有解釋VBox擴展你的類會發生什麼。 – 2012-01-18 18:45:00
「內容兒童」是容器的正常兒童,不包括添加到rawChildren中的皮膚等東西。我的擴展VBox本質上只是一個彈出式/工具提示類型的東西,但對兒童沒有任何特殊之處。它最多包含4個LinkButtons。 – Glenn 2012-01-18 20:08:32