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: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of zipo13
Sent: Sunday, February 25, 2007 1:18 AM
To: flexcoders@yahoogroups.com
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 flexcoders@yahoogroups.com <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: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>

> [mailto:flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com> ] On Behalf Of Keun Lee
> Sent: Friday, February 23, 2007 2:09 PM
> To: flexcoders@yahoogroups.com <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 flexcoders@yahoogroups.com
<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?
> >
>



 

Reply via email to