我需要一些可怕的帮助。我正在Flex 3中编写一个应用程序,该应用程序利用带有自定义itemRenderer的TileList来显示来自服务的信息。不幸的是,我遇到了TileList的拖放/重新排列部分的异常。使用dragEnabled和dragMoveEnabled,我在尝试重新排列控件中的tile时收到完全可重现的异常:
例外:
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() 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]
以下是自定义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
答案 0 :(得分: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