private function onActivateMenu( event : ContextMenuEvent ) : void
{
var p:Point = this.localToGlobal(new Point(mouseX, mouseY));
var r:IListItemRenderer = getItemAt(mouseX, mouseY, p.x, p.y);
if (r && r.data)
this.selectedIndex = users.getItemIndex((r.data as TGYUser));
}
package
{
import flash.display.InteractiveObject;
import flash.events.MouseEvent;
public class exMouseEvent extends MouseEvent
{
private var _stageX : Number;
private var _stageY : Number;
private var _target : Object;
public function exMouseEvent(type:String, target: Object, bubbles:Boolean=true, cancelable:Boolean=false, localX:Number=0, localY:Number=0, stageX:Number=0, stageY:Number=0, relatedObject:InteractiveObject=null, ctrlKey:Boolean=false, altKey:Boolean=false, shiftKey:Boolean=false, buttonDown:Boolean=false, delta:int=0)
{
_stageX = stageX;
_stageY = stageY;
_target = target;
super(type, bubbles, cancelable, localX, localY, relatedObject, ctrlKey, altKey, shiftKey, buttonDown, delta);
}
override public function get target() : Object
{
return _target;
}
override public function get stageY() : Number
{
return _stageY;
}
override public function get stageX() : Number
{
return _stageX;
}
}
}
package
{
import mx.controls.List;
import flash.events.MouseEvent;
import mx.controls.listClasses.IListItemRenderer;
public class exList extends List
{
public function exList()
{
super();
}
public function getItemAt(_mx:Number, _my:Number, _x:Number, _y:Number) : IListItemRenderer
{
var item:IListItemRenderer = super.mouseEventToItemRenderer( new exMouseEvent(MouseEvent.CLICK, listContent, true, false, _mx, _my, _x, _y) );
return item;
}
}
}
Keine Kommentare:
Kommentar veröffentlichen