Показать сообщение отдельно
Старый 09.05.2013, 03:38
Idon'tKnow вне форума Посмотреть профиль Отправить личное сообщение для Idon'tKnow Найти все сообщения от Idon'tKnow
  № 2  
Ответить с цитированием
Idon'tKnow

Регистрация: Apr 2013
Сообщений: 77
Вот есть идея. Просто перерисовывать линию белую, если нужно стереть. Не подходит такой вариант?

Код AS3:
package 
{
	import flash.display.Shape;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.display.Graphics;
	import flash.events.MouseEvent;
 
	/**
	 * ...
	 */
	public class Main extends Sprite 
	{
	private var container:Sprite;	
	private var simpleRect:Shape;
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
			container = new Sprite();
			simpleRect = new Shape();
			simpleRect.graphics.beginFill(0xFAAAFA);
			simpleRect.graphics.lineStyle(1);
			simpleRect.graphics.drawRect(100, 100, 300, 500);
			container.addChild(simpleRect);
			container.addEventListener(MouseEvent.MOUSE_OUT,  containerMouseLeftListener);
			container.addEventListener(MouseEvent.MOUSE_OVER, containerAddListenerCleaner);
			addChild(container);
			simpleRect.graphics.lineStyle(20, 0xFFFFFF);
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
		}
 
		private function containerCleanerListener(e:MouseEvent):void {
			simpleRect.graphics.lineTo(e.target.mouseX, e.target.mouseY);
			simpleRect.graphics.moveTo(e.target.mouseX, e.target.mouseY);
		}
 
		private function containerAddListenerCleaner(e:MouseEvent):void {
			simpleRect.graphics.moveTo(e.target.mouseX, e.target.mouseY);
			e.currentTarget.addEventListener(MouseEvent.MOUSE_MOVE, containerCleanerListener);
		}
 
		private function containerMouseLeftListener(e:MouseEvent):void {
		e.currentTarget.removeEventListener(MouseEvent.MOUSE_MOVE, containerCleanerListener);		
		}
 
	}
 
}