"Я пытался переопределить
updateDisplayList () метода
MX: компонент Canvas, но это кажется
обновлять чертеж только после
перетаскивание. Я хотел бы за линию
следуйте инструкциям mx: Panel
тащили ".
Вы можете прослушивать MoveEvent.MOVE
события в панелях и вызывать обработчик для перерисовки линий, а затем Панели отправлять эти события во время их перетаскивания, прослушивая MouseEvent.MOUSE_MOVE
события на этапе и отправка события MOVE
в обработчике (присоедините этот обработчик к этапу в обработчике событий MouseEvent.MOUSE_DOWN
Panel вместе с обработчиком для MouseEvent.MOUSE_UP
(также присоединенным к этапу) - затем удалите обоих слушателей событий со сцены в обработчике MOUSE_UP
.)
Вот пример (это будет в подклассе Panel:)
private function attachListeners():void
{
this.addEventListener(MouseEvent.MOUSE_DOWN, selfMouseDownHandler, false,0,true);
this.addEventListener(MoveEvent.MOVE, selfMoveHandler, false,0,true);
}
private function selfMoveHandler(event:MoveEvent):void
{
redrawConnectedLinks();
}
private function selfMouseDownHandler(event:MouseEvent):void
{
stage.addEventListener(MouseEvent.MOUSE_UP, stageMouseUpHandler, false,0,true);
stage.addEventListener(MouseEvent.MOUSE_MOVE, stageMouseMoveHandler, false,0,true);
}
private function stageMouseUpHandler(event:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_UP, stageMouseUpHandler, false);
stage.removeEventListener(MouseEvent.MOUSE_MOVE, stageMouseMoveHandler, false);
}
private function stageMouseMoveHandler(event:MouseEvent):void
{
dispatchEvent(new MoveEvent(MoveEvent.MOVE));
}