![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Aug 2010
Сообщений: 44
|
Здравствуйте.
Помогите советом ... Как сделать что бы объекты не "выходили" за пределы контейнера ?
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="800" minHeight="600" creationComplete="init()">
<s:layout><s:VerticalLayout gap="5" paddingBottom="10" paddingLeft="10" paddingRight="10" paddingTop="10"/></s:layout>
<fx:Script>
<![CDATA[
protected function init():void
{
container.addEventListener(MouseEvent.MOUSE_DOWN, dragObject);
container.addEventListener(MouseEvent.MOUSE_UP, dropObject);
}
private function dragObject(event:MouseEvent):void
{
if (event.target.id!='container')
{
event.target.startDrag();
}
}
private function dropObject(event:MouseEvent):void
{
if (event.target.id!='container')
{
event.target.stopDrag();
}
}
]]>
</fx:Script>
<s:BorderContainer width="100%" height="100%">
<s:Group id="container" width="100%" height="100%">
<s:BorderContainer id="box1" width="25" height="25" borderWeight="1" backgroundColor="0xс5с5с5"/>
<s:BorderContainer id="box2" width="25" height="25" borderWeight="1" backgroundColor="0xс5с5с5"/>
<s:BorderContainer id="box3" width="25" height="25" borderWeight="1" backgroundColor="0xс5с5с5"/>
</s:Group>
</s:BorderContainer>
</s:Application>
Последний раз редактировалось ommm; 23.02.2013 в 17:50. |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 44
|
Ага. Спасибо! вроде бы разобрался)
Правда объекты справа и снизу за пределы уезжают при перемещении. test_Drag_and_Drop.mxml: <?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="800" minHeight="600" creationComplete="init()">
<s:layout><s:VerticalLayout gap="5" paddingBottom="100" paddingLeft="100" paddingRight="100" paddingTop="100"/></s:layout>
<fx:Declarations>
<s:ArrayCollection id="objectList_1">
<fx:Object objName="Объект 1"/>
<fx:Object objName="Объект 2"/>
<fx:Object objName="Объект 3"/>
<fx:Object objName="Объект 4"/>
<fx:Object objName="Объект 5"/>
</s:ArrayCollection>
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.core.IUIComponent;
import mx.core.IVisualElement;
import mx.events.DragEvent;
import mx.events.FlexEvent;
import mx.managers.DragManager;
protected function init():void
{
container.addEventListener(DragEvent.DRAG_COMPLETE, drag_drop_Handler);
container.addEventListener(DragEvent.DRAG_DROP, drag_drop_Handler);
container.addEventListener(DragEvent.DRAG_ENTER, drag_drop_Handler);
container.addEventListener(DragEvent.DRAG_EXIT, drag_drop_Handler);
container.addEventListener(DragEvent.DRAG_OVER, drag_drop_Handler);
container.addEventListener(DragEvent.DRAG_START, drag_drop_Handler);
}
private function drag_drop_Handler(event:DragEvent):void
{
var object:Object = event.currentTarget;
switch(event.type)
{
case DragEvent.DRAG_DROP:
var new_Object:testObject = new testObject;
new_Object.x = container.mouseX;
new_Object.y = container.mouseY;
new_Object.mouseChildren = false;
new_Object.buttonMode = true;
new_Object.addEventListener(MouseEvent.MOUSE_DOWN, drag_drop);
new_Object.addEventListener(MouseEvent.MOUSE_UP, drag_drop);
new_Object.addEventListener(MouseEvent.MOUSE_MOVE, drag_drop);
container.addElement(new_Object);
break;
case DragEvent.DRAG_ENTER:
DragManager.acceptDragDrop(object as IUIComponent);
break;
}
}
private function drag_drop(event:MouseEvent):void
{
var object:Object = event.currentTarget;
switch(event.type)
{
case MouseEvent.MOUSE_DOWN:
container.setElementIndex(event.target as IVisualElement, container.numElements - 1);
object.startDrag(false, new Rectangle(0, 0, container.width, container.height));
object.scaleX = 1.05;
object.scaleY = 1.05;
break;
case MouseEvent.MOUSE_UP:
object.stopDrag();
object.scaleX = 1.0;
object.scaleY = 1.0;
break;
}
}
]]>
</fx:Script>
<s:HGroup width="100%" height="100%">
<s:List width="150" height="100%" dataProvider="{objectList_1}" labelField="objName" dragEnabled="true" allowMultipleSelection="true"/>
<s:BorderContainer id="container" width="100%" height="100%"/>
</s:HGroup>
</s:Application>
<?xml version="1.0" encoding="utf-8"?> <s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" width="50" height="50"> <s:BorderContainer borderWeight="1"> <s:Rect left="0" right="0" top="0" bottom="0"> <s:fill><s:SolidColor color="0xF3F3F3"/></s:fill> <s:stroke><s:SolidColorStroke weight="1"/></s:stroke> </s:Rect> </s:BorderContainer> </s:Group> |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:03. |
|
|
« Предыдущая тема | Следующая тема » |
|
|