Flex 3 TileList Исключение Drag / Drop / Re-order. Как переставить плитки? - PullRequest
0 голосов
/ 08 июня 2009

Мне нужна какая-то страшная помощь здесь. Я пишу приложение во 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

1 Ответ

0 голосов
/ 08 июня 2009
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

...