|
|
|||||
Регистрация: May 2007
Сообщений: 18
|
Как ограничить область рисования?
Создаю новый Sprite. Через graphics заливаю. Получаю размер к примеру 100 на 100 пикселей. На MouseEvent.MOUSE_MOVE спрайта повешено рисование линии. Начинаю рисовать линию толщиной в 10 пикселей. Когда дохожу до края спрайта линия начинает вылезать за край на 5 пикселей и растягивать спрайт. Соответственно событие MouseEvent.MOUSE_OUT не наступает никогда... Как можно ограничить область рисования в спрайте, чтобы за его краями линия не рисовалась и наступало событие MOUSE_OUT?
Вот полный код: var DrawField:Sprite = new Sprite(); DrawField.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); DrawField.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); DrawField.graphics.beginFill(0x555555); DrawField.graphics.drawRect(0, 0, 100, 100); DrawField.graphics.endFill(); DrawField.width = 100; DrawField.height = 100; addChild(DrawField); function mouseDownHandler(event:MouseEvent):void { trace("mouseDownHandler"); var sprite:Sprite = Sprite(event.target); sprite.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); sprite.graphics.moveTo(event.localX ,event.localY); sprite.graphics.lineStyle(10,0xaa0000,1.0); } function mouseUpHandler(event:MouseEvent):void { trace("mouseUpHandler"); var sprite:Sprite = Sprite(event.target); sprite.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); sprite.graphics.lineTo(event.localX ,event.localY); } function mouseMoveHandler(event:MouseEvent):void { trace("mouseMoveHandler"); var sprite:Sprite = Sprite(event.target); sprite.graphics.lineTo(event.localX ,event.localY); }
__________________
http://www.druzym.ru/users/tkozanov/ |
|
|||||
повесить маску?) правда не уверен что поможет
|
|
|||||
Я тоже думаю, что лучше повесить маску (также, вдруг область рисования не классической прямоугольной формы, это будет оптимальным вариантом)
|
|
|||||
Регистрация: May 2007
Сообщений: 18
|
Всем огромное спасибо за помощь. Я тоже думал насчёт маски, но не был уверен что поможет. Буду пробовать. О результатах отпишусь. )))
__________________
http://www.druzym.ru/users/tkozanov/ |
|
|||||
Регистрация: Dec 2008
Сообщений: 6
|
А что если выставить приоритет слушателя - priority?
public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void Не пользовался, но, наверное, для таих случаев оно и придумано. Последний раз редактировалось Dr. No; 20.04.2009 в 18:00. |
|
|||||
это вы щас о чем? всмысле к чему? всмысле зачем?
|
|
|||||
Регистрация: Dec 2008
Сообщений: 6
|
Я, по-видимому, не правильно понял вопрос. Чуток поэкспериментировал сейчас с исходным кодом: и правда, толку от расстановки приоритетов тут не будет.
|
Часовой пояс GMT +4, время: 01:38. |
|
« Предыдущая тема | Следующая тема » |
|
|