在Flex 3中将UIComponent添加到Canvas和Tree

时间:2010-04-08 22:10:31

标签: flex list flex3 canvas uicomponents

我目前正在尝试添加一个自定义类,它将UIComponent子类化为树和画布,但是当我尝试通过拖动重新排序树时,我收到此错误:

TypeError:错误#1010:术语未定义且没有属性。  在mx.controls :: Tree / get firstVisibleItem()[C:\ autobuild \ 3.2.0 \ frameworks \ projects \ framework \ src \ mx \ controls \ Tree.as:764]  在flash.utils :: ByteArray / writeObject()  在flash.desktop :: Clipboard / putSerialization()  在flash.desktop :: Clipboard / convertFlashFormat()  在flash.desktop :: Clipboard / setData()  在mx.managers :: NativeDragManagerImpl / doDrag()[C:\ autobuild \ 3.2.0 \ frameworks \ projects \ airframework \ src \ mx \ managers \ NativeDragManagerImpl.as:282]  在mx.managers :: DragManager $ / doDrag()[C:\ autobuild \ 3.2.0 \ frameworks \ projects \ framework \ src \ mx \ managers \ DragManager.as:243]  在mx.controls.listClasses :: ListBase / dragStartHandler()[C:\ autobuild \ 3.2.0 \ frameworks \ projects \ framework \ src \ mx \ controls \ listClasses \ ListBase.as:9085]  在flash.events::EventDispatcher/dispatchEventFunction()  at flash.events::EventDispatcher/dispatchEvent()  在mx.core :: UIComponent / dispatchEvent()[C:\ autobuild \ 3.2.0 \ frameworks \ projects \ framework \ src \ mx \ core \ UIComponent.as:9298]  在mx.controls.listClasses :: ListBase / mouseMoveHandler()[C:\ autobuild \ 3.2.0 \ frameworks \ projects \ framework \ src \ mx \ controls \ listClasses \ ListBase.as:8822]

当我没有将UIComponent添加到画布时,不会发生此错误,任何人都知道为什么会发生这种情况?

2 个答案:

答案 0 :(得分:0)

您收到此错误的原因是,树或画布无法访问您的自定义组件属性或方法。虽然你的组件确实进入了显示对象,但它仍然需要知道如何访问它。

答案 1 :(得分:0)

您应该创建控件的新实例,以便将其添加到画布中。 UIComponent上有许多属性要求它在一个地方 - 例如parent属性。如果你需要两者都显示类似的东西,你可以使用第三个对象来存储你的状态和数据绑定。