0

我在这里需要一些可怕的帮助。我正在 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());

}

当我尝试调试时,调试器似乎没有向我指出任何可能有问题的代码。

谁能指出我如何解决这个问题的正确方向?

提前致谢!

泰丁

4

1 回答 1

0
ArgumentError: Error #2004: One of the parameters is invalid.

是那些“可以是任何”消息之一;(

我记得不久前我有它,拼错了一些函数,Eclipse 编译得很好,即使它不应该有..(重启 Eclipse 在这里有所帮助,但我花了一段时间才发现..)。

我的提示是删除代码直到它工作并重新添加它,还要检查参数的数量。它肯定是一个“奇怪”的错误,你知道其中之一,“必须按特定顺序调用这两个函数”等等。祝你好运!

关于#2004 的其他故事;

http://www.coldfusioncommunity.org/profiles/blog/show?id=1439641%3ABlogPost%3A14565 http://blog.3alves.com/blog/post/2007/09/19/argumenterror-error-2004.aspx

这个很有趣; http://code.google.com/p/flexlib/issues/detail?id=113#c3

于 2009-06-08T19:56:41.560 回答