Well, in the toolbox the are labels for the components.I want to drag 
the label and drop the component.After that i want to double click the 
component to show an alert.

The Application:

<?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="955" minHeight="600"
xmlns:components="components.*">
<fx:Declarations>
<s:ArrayList id="tool">
<s:Label name="label"/>
<s:TextInput name="textInput"/>
<s:BorderContainer name="Region"/>
</s:ArrayList>
</fx:Declarations>

<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.core.IUIComponent;
import mx.events.DragEvent;
import mx.managers.DragManager;

import spark.components.BorderContainer;
import spark.components.Group;
protected function dragEnterHandler(event:DragEvent):void
{

DragManager.acceptDragDrop(event.currentTarget as IUIComponent);
}


protected function dragDropHandler(event:DragEvent):void
{
event.dragInitiator.x = event.currentTarget.mouseX -
event.dragInitiator.width/2;
event.dragInitiator.y = event.currentTarget.mouseY -
event.dragInitiator.height/2;
event.currentTarget.addElement(event.dragInitiator as IUIComponent);
}




protected function tool1_dragCompleteHandler(event:DragEvent):void
{
event.dragInitiator.addEventListener(MouseEvent.DOUBLE_CLICK, goa);
}

public function goa(event:MouseEvent):void
{
Alert.show("ok");
}

]]>


</fx:Script>




<components:Body x="106" width="955" height="400"
dragEnter="dragEnterHandler(event)"
dragDrop="dragDropHandler(event)" y="0"
doubleClickEnabled="true"  mouseEnabled="true"/>


<components:Tool x="800" y="400" dataProvider="{tool}"
dragComplete="tool1_dragCompleteHandler(event)" />
</s:Application>


and the Tool component:

<?xml version="1.0" encoding="utf-8"?>
<s:SkinnableDataContainer 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="100" height="100">
<s:layout>
<s:VerticalLayout/>
</s:layout>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>

<fx:Script>
<![CDATA[
import flash.utils.flash_proxy;

import mx.core.DragSource;
import mx.core.IUIComponent;
import mx.managers.DragManager;
import mx.utils.object_proxy;

import spark.components.Label;
import spark.components.supportClasses.ItemRenderer;
public function mouseDownHandler(event:MouseEvent):void
{
//  var dragSrc:Object = event.currentTarget ;


// var className:String = getQualifiedClassName(dragSrc);
//var klass:Class = getDefinitionByName(className) as Class;
//var proxy:* = new klass();



DragManager.doDrag(event.currentTarget as IUIComponent,null,event);
}


]]>


</fx:Script>

<s:itemRenderer >
<fx:Component >
<s:ItemRenderer >


<s:HGroup >
<s:Label text="{data}"
mouseDown="outerDocument.mouseDownHandler(event)"/>

</s:HGroup>
</s:ItemRenderer>
</fx:Component>
</s:itemRenderer>

</s:SkinnableDataContainer>


It drops only the labels and the double click doesn't work.
any ideas?
Thank You



Reply via email to