Jason,

A couple things:

1. You might try putting this inside a canvas within the Panel.

2. Not knowing the bigger picture of your component it's hard to tell 
exactly, but if the Panel container is inside of the component and 
not the base of the component, your "measure" function is getting the 
boundaries of the whole component, not just the Panel container. 

var rect:Rectangle = getBounds(this); If "this" is not the Panel 
container, then that could explain your results.


--- In flexcoders@yahoogroups.com, "Merrill, Jason" 
<[EMAIL PROTECTED]> wrote:
>
> I thought about that, but it's much further off that what that could
> possibly be.  
>  
> 
> Jason Merrill 
> Bank of America 
> GT&O L&LD Solutions Design & Development 
> eTools & Multimedia 
> 
> Bank of America Flash Platform Developer Community 
> 
> 
> Interested in innovative ideas in Learning?
> Check out the GT&O Innovative Learning Blog
> <http://sharepoint.bankofamerica.com/sites/ddc/rd/blog/default.aspx>
> and & subscribe
> 
<http://sharepoint.bankofamerica.com/sites/ddc/rd/blog/_layouts/SubNew
.a
> spx?List=%7B41BD3FC9%2DBB07%2D4763%2DB3AB%2DA6C7C99C5B8D%
7D&Source=http%
> 3A%2F%2Fsharepoint%2Ebankofamerica%2Ecom%2Fsites%2Fddc%2Frd%2Fblog%
2FLis
> ts%2FPosts%2FArchive%2Easpx> . 
> 
> 
> 
> 
>  
> 
> 
> ________________________________
> 
>       From: flexcoders@yahoogroups.com
> [mailto:[EMAIL PROTECTED] On Behalf Of Eric Cancil
>       Sent: Tuesday, February 19, 2008 12:36 PM
>       To: flexcoders@yahoogroups.com
>       Subject: Re: [flexcoders] Drawing in Panel Insanity
>       
>       
> 
>       You're probably not taking in account the panel's border
> thickness properties.  When you get the panel's width it's 
including the
> border (not just where the content is being drawn like youre 
imagining).
> To get the true width of the content area youd need to subtract
> getStyle("borderThicknessRight") and getStyle
("borderThicknessLeft").
>       Hope this helps
>       Eric Cancil
>       
>       
>       On Feb 19, 2008 12:29 PM, Merrill, Jason
> <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]> > wrote:
>       
> 
>               
> 
>               So I've been writing an Actionscript component that
> extends UIComponent and is wrapped inside a Panel tag.  The 
UIComponent
> has code that draws a flowchart of sorts into the content area of 
the
> Panel, based on a dataprovider it's bound to. Everything works fine
> there, and the drawn graphics change when the dataprovider changes
> automatically.  The drawn objects also stay within the boundaries 
of the
> Panel content area, thanks to some help on this list with overriding
> some protected methods.  
>                
>               The problem I still have though, is getting the drawn
> content to stay centered in the content area, including when the 
Panel
> is resized (either by resizing the browser window, since the Panel's
> width is 100%, or by moving an HDividedBox divider that separates it
> from other panels), or when the drawn content changes size.  I can
> measure the size of the drawn content easily enough using the
> getBounds() method of Rectangle class, but not the Panel's content 
area
> - the width and height seem to be way off when I measure them.
>                
>               The other problem is getting the scrollbars to be
> accurate.  I'm getting really confused by Panel's unscaledWidth,
> unscaledHeight, measuredWidth, measuredHeight, width, height,
> explicitWidth, and explicitHeight properties and how they all 
relate to
> each other.  Is there someone who can explain how the panel's 
content
> area size is calculated and also the scrollbars?
>                
>               Here is some code snippets from my class:
>                
>               override protected function
> updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void 
>               {
>                      super.updateDisplayList(unscaledWidth,
> unscaledHeight); 
>                      reposition();
>                      measuredWidth = unscaledWidth;
>                      measuredHeight = unscaledHeight; 
>               }
>                
>               override protected function measure():void
>               {
>                            var rect:Rectangle = getBounds(this);
>                            measuredWidth = rect.width;
>                            measuredHeight = rect.height;  
>                          var flowchartRect:Rectangle =
> getBounds(_flowchart);
>                          _flowchartWidth = flowchartRect.width;
>                          _flowchartHeight = flowchartRect.height;
>               }
>                
>               private function reposition(e:Event):void
>                 {
>                  measure();
>                  _flowchart.x = (width/2)-(_flowchart/2);
>                  _flowchart.y = (height/2)-(_flowchart/2);
>                 }
>                
>               Thanks,
>                
> 
>               Jason Merrill 
>               Bank of America 
>               GT&O L&LD Solutions Design & Development 
>               eTools & Multimedia 
> 
>               Bank of America Flash Platform Developer Community 
> 
> 
>               Interested in innovative ideas in Learning?
>               Check out the GT&O Innovative Learning Blog
> <http://sharepoint.bankofamerica.com/sites/ddc/rd/blog/default.aspx>
> and & subscribe
> 
<http://sharepoint.bankofamerica.com/sites/ddc/rd/blog/_layouts/SubNew
.a
> spx?List=%7B41BD3FC9%2DBB07%2D4763%2DB3AB%2DA6C7C99C5B8D%
7D&Source=http%
> 3A%2F%2Fsharepoint%2Ebankofamerica%2Ecom%2Fsites%2Fddc%2Frd%2Fblog%
2FLis
> ts%2FPosts%2FArchive%2Easpx> .
>


Reply via email to