我在这里需要一些可怕的帮助。我正在 Flex 3 中编写一个应用程序,它利用带有自定义 itemRenderer 的 TileList 来显示来自服务的信息。不幸的是,我在 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\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() 在 flash.events::EventDispatcher/dispatchEvent() 在 mx.core::
这是自定义 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(event) 的代码:
private function onReorder(event:DragEvent):void{
var indexStartDrag:Number = event.currentTarget.selectedIndex
var indexStopDrag:Number = this.memoList.calculateDropIndex(event);
Alert.show(indexStopDrag.toString());
}
当我尝试调试时,调试器似乎没有向我指出任何可能有问题的代码。
谁能指出我如何解决这个问题的正确方向?
提前致谢!
泰丁