Мне нужна какая-то страшная помощь здесь. Я пишу приложение во Flex 3, которое использует TileList с пользовательским itemRenderer для отображения информации из службы. К сожалению, я сталкиваюсь с исключением из-за перетаскивания / переупорядочения части TileList. С помощью dragEnabled и dragMoveEnabled я получаю полностью воспроизводимое исключение при попытке перегруппировать плитки в элементе управления:
Исключение:
ArgumentError: Ошибка № 2004: один из параметров недействителен.
на 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 \ Manager \ NativeDragManagerImpl.as: 282]
в mx.managers :: DragManager $ / doDrag () [C: \ autobuild \ 3.2.0 \ frameworks \ projects \ framework \ src \ mx \ Manager \ 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 ()
на 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]
Вот код для пользовательского TileList:
<cmp:MemoTileList itemRenderer="CoverNote" dragEnabled="true" itemsChangeEffect="{this.myTileListEffect}" backgroundAlpha="0" id="memoList" dataProvider="{this.management.memoCollection}" right="0.049865723" left="0.05" top="0" bottom="0" focusEnabled="false" focusAlpha="0" borderStyle="none" direction="horizontal" textAlign="left" allowMultipleSelection="false" showEffect="fadeIn" hideEffect="fadeOut" effectEnd="fadeOut" effectStart="fadeIn" dragDrop="onReorder(event)" dragMoveEnabled="true">
</cmp:MemoTileList>
Вот код для onReorder (события):
private function onReorder(event:DragEvent):void{
var indexStartDrag:Number = event.currentTarget.selectedIndex
var indexStopDrag:Number = this.memoList.calculateDropIndex(event);
Alert.show(indexStopDrag.toString());
}
Когда я пытаюсь отладить, кажется, что отладчик не указывает мне какой-либо фрагмент кода, который может быть неисправен.
Может кто-нибудь указать мне правильное направление, как решить эту проблему?
Заранее спасибо!
Tajddin