Рисование поверх загруженного изображения мышью - PullRequest
2 голосов
/ 16 февраля 2011

Я пробовал таким образом, но это не рисует на изображении.Только если я попытаюсь нарисовать на правой границе (вне изображения) это работает.

private var oldX:Number, oldY:Number; 
private var mode:String = "modeBrush";
   private function onMouseDown(e:MouseEvent):void { 
    oldX = e.localX; 
    ldY = e.localY; 
   } 
   private function onMouseMove(e:MouseEvent):void { 
        if (e.buttonDown) { 
       var g:Graphics = currImg.graphics; 
       var mx:Number = e.localX; 
       var my:Number = e.localY;        
           g.lineStyle(10, 0xFFFF00); 
       g.moveTo(oldX, oldY); 
       g.lineTo(mx, my); 
    }   
        oldX = mx; 
    oldY = my;  
} 
//image i'am loading at runtime by button click

 <s:BorderContainer id="everything" borderStyle="solid"  width="900" height="600">
      <s:Scroller left="2" right="2" top="2" bottom="2">
           <s:Group id="group"> 
         <mx:Image id="currImg" mouseMove="onMouseMove(event)" mouseDown="onMouseDown(event)"/>
           </s:Group>
       </s:Scroller>    
     </s:BorderContainer>

ОБНОВЛЕНИЕ Если я так делаю, все отлично работает!

var line:UIComponent = new UIComponent();
    line.graphics.lineStyle(2, 0x990000, .75);
    line.graphics.beginFill(0x000000);
    line.graphics.moveTo(oldX, oldY);
    line.graphics.lineTo(mx, my);
    currImg.addChild(line);

1 Ответ

2 голосов
/ 17 февраля 2011

Поскольку я знаю, что вы не можете нарисовать линию непосредственно на изображении, вам нужно нарисовать на UIComponent.

Вам может помочь следующая ссылка:

http://groups.google.com/group/macromedia.flex.flex_builder/browse_thread/thread/bbcfc4e3e0a2e133 http://www.axelscript.com/2008/06/11/drawing-in-flex-using-the-uicomponent/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...