![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 176
|
Можно ли в 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, время: 04:32. |
|
|
« Предыдущая тема | Следующая тема » |
|
|