我目前正在尝试添加一个自定义类,它将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添加到画布时,不会发生此错误,任何人都知道为什么会发生这种情况?
答案 0 :(得分:0)
您收到此错误的原因是,树或画布无法访问您的自定义组件属性或方法。虽然你的组件确实进入了显示对象,但它仍然需要知道如何访问它。
答案 1 :(得分:0)
您应该创建控件的新实例,以便将其添加到画布中。 UIComponent上有许多属性要求它在一个地方 - 例如parent
属性。如果你需要两者都显示类似的东西,你可以使用第三个对象来存储你的状态和数据绑定。