2009-05-15 2 views
0

항목 분류 방법에 따라 List 중 하나에 항목 모음을 표시하는 플렉스 애플리케이션이 있습니다. 목록간에 항목을 끌어서 사용자는 항목을 재 분류하려고하는 서버 측 프로세스를 시작합니다. 서버 측 프로세스는 오류 메시지 또는 'OK'가 포함 된 XML을 반환합니다.플렉스 목록에서 드래그를 수동으로 구현

서버가 OK를 반환하면 UI가 '끌기 이동'을 수행하고 서버가 오류를 반환하면 UI가 아니어야합니다. 기본 드래그 핸들러 (ListdragEnabled=truedropEnabled=true 설정)를 사용하면 항상 드래그 복사본이 수행됩니다.

내가 알 수있는 한, 내가 비동기 서버 유효성 검사를 처리하기위한 일들을 충분히 제어 할 수있는 유일한 방법은 수동으로 목록간에 드래그를 구현하는 것입니다. 그래서 나는 Adobe's documentation을 읽고 그들의 예를 적용하려고 시도했다.

내가 겪고있는 문제는 목록에서 mouseMove 이벤트에 연결하여 끌기를 감지해야한다는 것입니다. 그런 다음 List를 DragManager.doDrag 루틴에 초기화 프로그램으로 전달합니다.

이런 식으로 작업하는 것은 여러 가지 문제가 있습니다. 기본 프록시 이미지는 전체 목록의 크기이며, 스크롤바를 사용하여 드래그 감지 등을 설정하려고합니다. 분명히 잘못된 것을하고 있습니다.

수동으로 List에 드래그를 구현하려 했습니까? 드래그 이벤트를 올바르게 감지하는 빠른 트릭이 있습니까? 내가 실제 itemRenderer를 사냥해야할까요? 사용자가 드래그하여 초 기자로 전달하고 있습니까?

답변

2

드래그 시작 프로그램이 전체 List 컨트롤이 아닌 드래그하는 항목 렌더러 여야한다고 생각합니다.

+0

방금 ​​발견했습니다. 기본 List 드래그 동작을 모방하는 유일한 방법입니다. –

0

흠 ... 여기서 무엇을하려하는지 이해한다면 드롭을 끌고 싶지만 서버가 오류를 반환하면 실행 취소 하시겠습니까?

내가 할 수있는 것은 dragEnd 이벤트를 처리하고 서버 상태를 확인하는 것입니다. 서버가 오류를 반환 한 경우 데이터를 원래 목록으로 다시 이동하고 새 목록에 추가하지 마십시오. 그렇지 않으면 기본 동작 만 수행하십시오. 설명에 대해 자유롭게 의견을 말하십시오.

관련 문제