|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Nov 2006
Сообщений: 176
|
Обрезка прорисовки в рамках UIComponent'a
Можно ли в UIcomponent'e сделать так, что бы рисованные фигуры не выходили за его пределы.
|
|
|||||
Регистрация: Apr 2007
Сообщений: 1,369
|
Можно, мышка ушла за пределы - и стоп рисованию.
__________________
john Последний раз редактировалось Molecula; 29.05.2008 в 22:13. |
|
|||||
Регистрация: Nov 2006
Сообщений: 176
|
да нет.. дело не в этом...
|
|
|||||
Регистрация: Apr 2007
Сообщений: 1,369
|
Как это нет.
Вы, допустим рисуете в прямоугольнике, вешаете листенеры, нажимаете мышу - рисуете - тяните, выходите за пределы прямоугольника и рисование обрывается - я так делал.
__________________
john |
|
|||||
Регистрация: Feb 2008
Адрес: Russia
Сообщений: 19
|
Надо делать override методов measure() и updateDisplayList().
Подробнее здесь: http://livedocs.adobe.com/flex/3/htm...dvanced_2.html
__________________
lida -- dyra (c) lida |
|
|||||
Регистрация: Feb 2008
Адрес: Russia
Сообщений: 19
|
Или же можно просто задать жесткие размеры для компонента.
__________________
lida -- dyra (c) lida |
|
|||||
Если будешь рисовать в нем что нить графиксом то помоему неспасет даже установленный размер.
Пока юзал маску которая рисуеться и ставиться когда компонент ресайзиться.
__________________
Бубен - волшебный инструмент программирования. |
|
|||||
Регистрация: Apr 2007
Сообщений: 1,369
|
Да масок особо никаких не надо.
Просто при startDrag правильно вычисляем Rectangle.
__________________
john |
|
|||||
Какой Rectangle? Под рисованием в данном посте имхо такой код имееться ввиду (здесь уже с масочкой):
package { import flash.display.Shape; import mx.core.IUIComponent; import mx.core.UIComponent; public class Sample extends UIComponent implements IUIComponent { private var shapeMask:Shape public function Sample() { shapeMask = new Shape() addChild(shapeMask) mask = shapeMask graphics.beginFill(0xFF0000); graphics.drawRect(0, 0, 500, 500); } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { super.updateDisplayList(unscaledWidth, unscaledHeight) shapeMask.graphics.clear() shapeMask.graphics.beginFill(0x00FF00); shapeMask.graphics.drawRect(0, 0, unscaledWidth, unscaledHeight); } } } <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*" enterFrame="update()"> <mx:Script> <![CDATA[ private function update():void { sample.width = mouseX sample.height = mouseY } ]]> </mx:Script> <local:Sample id="sample"/> </mx:Application>
__________________
Бубен - волшебный инструмент программирования. |
|
|||||
Регистрация: Apr 2007
Сообщений: 1,369
|
ex.image, я так понял, что автору нужно, например в Канвасе 200 на 200, нарисованный Спрайт (50 на 50), таскать в этих пределах 200 на 200.
Т.е. дальше сторон Канваса Спрайт не уйдет.
__________________
john |
Часовой пояс GMT +4, время: 18:39. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|