I have successfully set up some code that contains an event listener if I mouse down anywhere on a canvas. From the handler, I can modify a text area and move it. The code for this is shown below. But what I would like to do is access the xy coordinates of the mouse and move the text area to those coordinates. I am trying to access event.target.mouseX and event.target.mouseY. Earlier I had some code that would do that successfully using <mx:canvas mouseDownSomewhere="runfunction()" />, but now that I have the event listener function set up for the mouseDownSomewhere, it won't work.
Any ideas on how to get the text area to move to where I want it to go? Here is the code with the event Listener: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" initialize="createListener();"> <mx:Script> <![CDATA[ function createListener() { myCanvas.addEventListener ("mouseDownSomewhere", handleClickEvent); } function handleClickEvent(event:Object) { myText.text="pressed"; myTA.text=""; myTA.x=100; myTA.y=100; myTA.visible=true; } function buttonPressed() { var newTA=myCanvas.createChild (mx.controls.TextArea, "", {text:"newtext",x:100,y:100}); Selection.setFocus(newTA); } ]]> </mx:Script> <mx:Button label="Add More Text" click="buttonPressed()" /> <mx:Canvas id="myCanvas"> <mx:Text id="myText" text="Text" /> <mx:TextArea id="myTA" visible="false" text="textarea" width="200"/> </mx:Canvas> </mx:Application> Here is some code that uses the mouseX and mouseY successfully, but doesn't include a way for me to turn off the event Listener. Essentially, what I want is for this code here to work while adding a way to turn the mousedown listener on and off via a button. ' <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" width="100%" height="100%" > <mx:Script> <![CDATA[ //import mx.events.EventDispatcher; var xDef:Number; var yDef:Number; var i:Number=0; //private var dispatchEvent:Function; public var addEventListener:Function; public var removeEventListener:Function; //function myInit() { //mx.events.EventDispatcher.initialize(this); //} function handleMouseDown(event:Object) { var xLoc=event.target.mouseX; var yLoc=event.target.mouseY; xDef=xLoc; yDef=yLoc; myCanvas.createChild (mx.controls.TextArea, "newTxtFld"+i) myCanvas["newTxtFld"+i].x=xLoc; myCanvas["newTxtFld"+i].y=yLoc; myCanvas["newTxtFld"+i].visible=true; myCanvas["newTxtFld"+i].width=700-xLoc; Selection.setFocus(myCanvas["newTxtFld"+i]); myCanvas.removeEventListener ("mouseDownSomewhere", handleMouseDown); i++; } function handleMouseOver(event:Object){ var xLoc=event.target.mouseX; var yLoc=event.target.mouseY; var idx=event.target.index; myCanvas[idx].x=xLoc; myCanvas[idx].y=yLoc; myCanvas[idx].width=700-xLoc; } function buttonPressed() { myCanvas.addEventListener ("mouseDownSomewhere", handleMouseDown); } function turnOffListener() { myCanvas.removeEventListener ("mouseDownSomewhere", handleMouseDown); } ]]> </mx:Script> <mx:Text width="100%" text="To start adding text, just click anywhere. A new text area will be created to type into." /> <mx:Button label="Add More Text" click="buttonPressed()" /> <mx:Button label="Turn Off Listener" click="turnOffListener ()" /> <mx:Canvas id="myCanvas" mouseOver="handleMouseOver(event)" width="800" height="600"> <!--mouseDownSomewhere="handleMouseDown(event)"--> </mx:Canvas> </mx:Application> Thank you for you help!!! Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/flexcoders/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/