Finally found the bug. If you are using the Adobe FIG Callout component watchout for the updateDisplay list method implementation. They are telling the Callout on update x=startX and y=startY instead of x=x and y=y or just comment it out like I did and on update don't reposition it, leave x,y alone.
--- In [email protected], "flexaustin" <flexaus...@...> wrote: > > So I have this PopupManager, in my flex app, that creates a popup on > the main screen of the application, but I have an eventlistener set on > the main application, which calls a function that tells the Popup to > follow the x,y of a sprite a couple displayobjects deep in the > displaylist. > > So a visual in words: > > SpriteToFollow (aka ns:NodeSprite) > SpriteToFollowHolder > MainSpriteHolder > Applcation/Stage > > So Popup once popped up follows SpriteToFollow. My Popup has two > states min/max where min is 250px by 150px and max is 400px by 400px. > > When I change states my popup jumps around on the stage. What I have > found is when changing min/max or max/min the Popup keeps jumping back > to where its x,y were when it was first created. Then a frame later it > jumps back to follow the SpriteToFollow. > > > Here is my code that creates and updates the Popup. Maybe someone can > help me understand why it keeps going back to where it started? > > public function creatLaunchSuperDetails( ns:NodeSprite ) : > SuperDetailCallout > { > if(sdc){removeStageFrameEventListener()}; > if(sdc){PopUpManager.removePopUp(sdc)}; > createSDC( ns ); > PopUpManager.addPopUp(sdc, this, false); > return sdc; > > } > > private function createSDC(ns:NodeSprite) : void > { > _ns = ns; > sdc = new SuperDetailCallout(); > var p:Point = ns.localToGlobal(new Point(0,0)); > sdc.x = p.x; > sdc.y= p.y; > > > this.addEventListener(Event.ENTER_FRAME, > handleEnterFrameEvent); > > if(sdc && _ns.data){ > var type:String = _ns.data.type != null > ? _ns.data.type : " "; > var name:String = _ns.data.name != null > ? _ns.data.name : " "; > sdc.title=String(name + " " + type); > }else{ > throw Error ("Nodes.data is " + > _ns.data); > } > > sdc.line1="Illegal download amount"; > sdc.line2="offline"; > > } > > private function handleEnterFrameEvent(event:Event) : > void > { > var pt:Point = new Point(_ns.x, _ns.y); > pt = _ns.localToGlobal(new Point(0,0)); > trace( pt.x, pt.y); > trace( 'x is ' + _ns.x + ' and y is ' + _ns.y); > sdc.move( pt.x, pt.y ); > > } >

