Here is a sample app which does what you describe.
- Gordon
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script><![CDATA[
import mx.containers.Canvas;
import mx.containers.TitleWindow;
import mx.controls.Button;
import mx.managers.PopUpManager;
private var popUp:TitleWindow;
private function b_clickHandler(event:MouseEvent):void
{
var b:Button = Button(event.target);
var pt:Point = b.localToGlobal(new Point(0, 0)); // global
coords of b's top-left corner
// var pt:Point = vb.localToGlobal(new Point(b.x, b.y)); //
another way to compute the global coords of b's top-left corner
createPopUp(pt.x, pt.y + b.height + 2);
}
private function createPopUp(x:Number, y:Number):void
{
popUp = new TitleWindow();
popUp.x = x;
popUp.y = y;
popUp.width = 100;
popUp.height = 100;
popUp.title = "Panel";
popUp.setStyle("styleName", "opaquePanel");
popUp.showCloseButton = true;
popUp.addEventListener(Event.CLOSE, popupCloseHandler);
PopUpManager.addPopUp(popUp, this);
}
private function popupCloseHandler(event:Event):void
{
PopUpManager.removePopUp(popUp);
popUp = null;
}
]]></mx:Script>
<mx:VBox>
<mx:TabNavigator width="300" height="200">
<mx:VBox id="vb" label="Tab 1">
<mx:Repeater id="r" dataProvider="{[ 1, 2, 3 ]}">
<mx:Button id="b" label="Button {r.currentItem}"
click="b_clickHandler(event)"/>
</mx:Repeater>
</mx:VBox>
</mx:TabNavigator>
</mx:VBox>
</mx:Application>
________________________________
From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of zipo13
Sent: Sunday, February 25, 2007 1:18 AM
To: [email protected]
Subject: [flexcoders] Re: How to get the real X & Y of a repeater item
Hi,
Thank you for the help but non of these methods seem to help.
The repeater I use is in a canvas that sits in a tab navigator that
sits in a vbox in an application.
All in different components.
I have tried to open the dialog:
var pt:Point = new Point(event.stageX, event.stageY);
pt = event.target.contentToGlobal(pt);
this.renameTagDlg.x = pt.x;//
this.renameTagDlg.y = pt.y;//
I've changed the contentToLocal to all 6 possibilities but none of
them work.
contentToGlobal,contentToLocal,globalToContent,globalToLocal,localToCont
ent,localToGlobal
I have even tried to get the X,Y of the mouse globalyy and just open
the dialog there but that didn't work too.
I think that jer_ela was on the right track but I just can subtract
all the containers X & Y.
THIS IS SO FRUSTRATING.....
--- In [email protected] <mailto:flexcoders%40yahoogroups.com>
, "Robert Chyko" <[EMAIL PROTECTED]> wrote:
>
> or if your container uses absolute positioning you would need to use
> contentToGlobal
>
>
> -----Original Message-----
> From: [email protected] <mailto:flexcoders%40yahoogroups.com>
> [mailto:[email protected]
<mailto:flexcoders%40yahoogroups.com> ] On Behalf Of Keun Lee
> Sent: Friday, February 23, 2007 2:09 PM
> To: [email protected] <mailto:flexcoders%40yahoogroups.com>
> Subject: Re: [flexcoders] Re: How to get the real X & Y of a
> repeater item
>
>
>
> Hey you might want to also look into "localToGlobal"
>
> I.e
>
> var comp : UIComponent = UIComponent(
> event.target ); var point : Point = comp.localToGlobal(
> new Point( comp.x, comp.y ) ); trace( point.x + ":" +
> point.y );
>
> -Keun
>
>
> On 2/22/07 9:24 AM, "jer_ela" <[EMAIL PROTECTED]> wrote:
>
>
>
>
>
>
>
> The following code gets the x and y positions of an
> image that has
> been clicked on that was generated by a repeater.
> Getting the coords
> for a button should be pretty much the same.
>
> stageX and Y are the x and y coords of the mouse
> position relative to
> the application stage. mainCanvas is a direct child of
> the application
> and is the container that I want the coords relative to.
> If you have
> additional containers between the stage and the one you
> need coords
> relative to, you have to subtract the x and y at each
> level to get
> from stage coords to that container's coords.
> Subtracting the mouseX
> and Y moves the coords from the point or the click to
> the upper left
> corner of the image.
>
> selectedImage.x = event["stageX"] - mainCanvas.x
> - event.currentTarget.mouseX;
> selectedImage.y = event["stageY"] - mainCanvas.y
> - event.currentTarget.mouseY;
>
> --- In [email protected]
<mailto:flexcoders%40yahoogroups.com>
> <mailto:flexcoders%40yahoogroups.com>
> <mailto:flexcoders%40yahoogroups.com> , "zipo13" <zipo13@> wrote:
> >
> > Hi,
> > In my app I create a repeater the generats VBoxes each
> with button
> in it.
> > When the user clicks on the button I want to generate
> a small dialog
> > that will open up under the button.
> > I know how to get the repeater current item and target
> and current
> > target but I can't find the real X & Y of the button.
> > Am I going in the wrong direction?
> >
>