I'm happy to help.  I've been experimenting a bit and have found an approach 
using getObjectsUnderPoint which I like better.  It's at:

http://flexamusements.blogspot.com/2009/10/flex-tree-what-node-am-i-dragging-over.html

There are (of course) lots of other ways to accomplish this as well.

--- In [email protected], "timgerr" <tgallag...@...> wrote:
>
> Max, that was a big help.  Thanks all for helping me out, this group rocks.
> 
> timgerr
> 
> --- In [email protected], "max.nachlinger" <max.nachlinger@> wrote:
> >
> > 
> > 
> > 
> > 
> > 
> > Here's a bit of code that might help.
> > 
> > Silly test app: -----------------------------------------------------
> > 
> > <?xml version="1.0" encoding="utf-8"?>
> > <Application xmlns="http://www.adobe.com/2006/mxml"; layout="absolute" 
> > creationComplete="_onLoad()" xmlns:local="*">
> > <Script>
> > <![CDATA[
> > import mx.events.*;
> > import mx.collections.ArrayCollection;
> > [Bindable] private var _data:ArrayCollection;
> > 
> > private function _onLoad():void
> > {
> >     var a:Array = [];
> >     var o:Object = {};
> >     var o1:Object = {};
> >     var o2:Object = {};
> >     var o3:Object = {};
> >     
> >     var c:int, d:int, e:int;
> >     for( var i:int = 0; i < 100; i++ )
> >     {
> >             c = _randIntRange(2,20);
> >             o = {name:'Great Grand-Parent '+(i+1), children:[]};
> >             
> >             for( var j:int = 0; j < c; j++ )
> >             {
> >                     o1 = {name:'Grand Parent '+(j+1), children:[]};
> >                     
> >                     d = _randIntRange(1,5);
> >                     for( var k:int = 0; k < d; k++ )
> >                     {
> >                             o2 = {name:'Parent '+(k+1), children:[]};
> >                             
> >                             e = _randIntRange(1,2);
> >                             for( var l:int = 0; l < e; l++ )
> >                             {
> >                                     o3 = {name:'Child '+(l+1)};
> >                                     o2.children.push(o3);
> >                             }
> >                             
> >                             o1.children.push(o2);
> >                     }
> > 
> >                     o.children.push(o1);
> >             }
> >             
> >             a.push(o);
> >     }
> >     _data = new ArrayCollection(a);
> > }
> > private function _randIntRange( start:Number, end:Number ):int
> > {
> >     return int(Math.floor(start +(Math.random() * (end - start))));
> > }
> > ]]>
> > </Script>
> > <local:TestTree id="tr" width="250" height="100%" dataProvider="{_data}" 
> > labelField="name" 
> >     dragEnabled="true" dropEnabled="true" dragMoveEnabled="true"/>
> > </Application>
> > 
> > Silly test tree: -----------------------------------------------------
> > 
> > <?xml version="1.0" encoding="utf-8"?>
> > <Tree xmlns="http://www.adobe.com/2006/mxml";>
> > <Script>
> > <![CDATA[
> > import mx.events.*;
> > import mx.controls.listClasses.*;
> > 
> > private var _currentRenderer:IListItemRenderer;
> > private var _draggedItem:Object;
> > 
> > override protected function mouseOverHandler(event:MouseEvent):void 
> > {
> >     super.mouseOverHandler(event);
> >     var item:IListItemRenderer = mouseEventToItemRenderer(event);
> >     if ( item != null && _currentRenderer != item ) 
> >     {
> >             _currentRenderer = item;
> >             trace(className + '::mouseMoveHandler(): ' + 
> > _currentRenderer.data['name'] );
> >     }
> > }
> > 
> > override protected function dragOverHandler(event:DragEvent):void
> > {
> >     _draggedItem = event.dragSource.dataForFormat('treeItems')[0];
> >     trace(className + '::dragOverHandler(): dragging (' + 
> > _draggedItem['name'] + ') over (' + _currentRenderer.data['name'] + ')' );
> > }
> > ]]>
> > </Script>
> > </Tree>
> > 
> > Hope that helps a bit.
> > 
> > --Max
> >
>


Reply via email to