2013-06-20 2 views
3

у меня есть Richtext с фоном, и я хочу, чтобы переместить это с движением мышидвижение RichText с движением мыши в гибком

так я пишу код ниже: (Richtext глобальное поле)

public function createRichText(textPoint:Point):RichText { 
richText = new RichText(); 
    var measure:String = correlationMeasure.toFixed(4).toString(); 
    richText.text = measure; 
    richText.x = textPoint.x; 
    richText.y = textPoint.y; 
    richText.width = 60; 
    richText.height = 24; 
    richText.setStyle("fontSize", 11); 
    richText.setStyle("horizontalCenter", "0"); 
    richText.setStyle("verticalCenter", "1"); 
    richText.setStyle("left", "2"); 
    richText.setStyle("right", "2"); 
    richText.setStyle("top", "5"); 
    richText.setStyle("bottom", "5"); 
    richText.setStyle("textAlign", "center"); 
    richText.setStyle("verticalAlign", "middle"); 
    richText.setStyle("backgroundColor", 0xe6e91f); 
    richText.setStyle("backgroundAlpha", 1); 
     richText.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler, false, 10); 
     richText.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler, false, 10); 
return richText 
} 


private function mouseDownHandler(e:MouseEvent):void { 
    e.stopPropagation(); 
    allowDraging = true; 
    richText.addEventListener(MouseEvent.MOUSE_MOVE, dragWithMouse); 
} 
private function dragWithMouse(e:MouseEvent):void { 
    if (allowDraging) { 
     e.stopPropagation(); 
     var temp:Point = richText.contentToGlobal(new Point(e.localX, e.localY)); 
     mousePoint = rootComponent.globalToLocal(temp); 

     removeChild(richText); 
     addChild(createRichText(mousePoint)); 
     e.updateAfterEvent();*/ 
    } 
} 

но он работает неправильно ... означает, что он не перемещается непрерывно с движением мыши и прыгает! кто знает почему?

ответ

2

Попробуйте startDrag() и stopDrag() методы, определенные в классе Sprite:

private function mouseUpHandler(e:MouseEvent):void { 
     e.stopPropagation(); 
     richText.stopDrag(); 
    } 

    private function mouseDownHandler(e:MouseEvent):void { 
     e.stopPropagation(); 
     richText.startDrag(); 
} 
+0

Спасибо вам @Pan это работает ... но я проблема я нарисовать разъем линии между двумя прямоугольником и это Richtext находится в середине эта строка ... знаете ли вы, как переместить линию с этим richText? – sami

+0

Попробуйте поместить richText и строку в контейнер, как спрайт, холст и т. Д., А затем добавить событие мыши в контейнер, как и выше – Pan

+0

i will ... thanks – sami

Смежные вопросы