|
View:
New views
1 Messages
—
Rating Filter:
Alert me
|
|
|
Digest Number 844Message:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <style type="text/css"> <!-- #ygrp-mlmsg {font-size:13px; font-family: arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;} #ygrp-mlmsg table{font-size:inherit; font:100%;} #ygrp-mlmsg select, input, textarea{font:99% arial,helvetica,clean,sans-serif;} #ygrp-mlmsg pre, code{font:115% monospace; *font-size:100%;} #ygrp-mlmsg * {line-height:1.22em;} #ygrp-mlmsg a{color:#1e66ae;} #ygrp-mlmsg{width:715px;} #ygrp-mlmsg #ygrp-banner{ background-color:#295c7d; border:1px solid #7d9ebd; padding: 3px; margin-bottom: 10px; text-align:center; } #ygrp-mlmsg #ygrp-banner a{ font-size: 136%; font-weight: bold; color: #fff;} #ygrp-mlmsg #ygrp-banner p{ float: right; margin: .5em 0 0 0; font: italic 77% Arial; color: #fff;} #ygrp-msg{ width: 532px; float: left; padding: 0 20px 0 0; margin-bottom: 10px; } #ygrp-msg h1{ font-size:110%; font-weight:bold; padding:.3em 0; margin: 0; display: inline; } #ygrp-msg #ygrp-summary{padding-bottom:20px;} #ygrp-msg #ygrp-summary dl{ padding-bottom: 5px; font-family: Verdana; margin: 5px 0; } #ygrp-msg #ygrp-summary .ygrp-subj{ font-family: Georgia; text-decoration: none; font-size: 120%; margin-right: 4px; } #ygrp-msg #ygrp-summary dt{ display: block; float: left; font-size: 92%; } #ygrp-msg #ygrp-summary dd{ margin-left: 25px; font-size: 77%; line-height:150%; } #ygrp-msg .new{color:#ff8000;} #ygrp-msg .action{ font-weight:bold; text-align:center; clear:both; padding:20px 0; border-bottom:4px solid #eee; } #ygrp-msg #ygrp-detail dl{ margin: 0; border-top: 4px solid #ccc; border-bottom: double #666; } #ygrp-msg #ygrp-detail dd{ margin-left: 25px; border-bottom: double #666; } #ygrp-msg #ygrp-detail dd, #ygrp-msg #ygrp-detail dt{ padding-top:20px; margin-top:0; } #ygrp-msg #ygrp-detail dt{ display: block; float: left; font-size: 92%; } #ygrp-msg #ygrp-detail h2{ font-size:100%; font-family:Georgia; font-weight:bold; margin: 0 0 5px 0; } #ygrp-msg #ygrp-detail h2 a { text-decoration:none; } #ygrp-msg #ygrp-detail h3{ font: 100% Arial; margin: 0; } #ygrp-msg #ygrp-detail h4{ font: 77% verdana; margin: 0 0 20px 0; } #ygrp-msg #ygrp-detail .ygrp-content{ font-family:Georgia; font-size:100%; line-height:122%; } #ygrp-msg #ygrp-detail .ygrp-dateline{ font-family: Arial; line-height: 140%; padding: 10px 0; margin-bottom: 20px; } #ygrp-msg #ygrp-detail .ygrp-dateline a{ padding-bottom: 20px; } .offset{float: right;font: 77% verdana; padding-top:2em;} #ygrp-sponsor #hd{ color: #999; font-size: 77%; } #ygrp-sponsor #ov{ padding: 6px 13px; background-color: #e0ecee; margin-bottom: 20px; } #ygrp-sponsor #ov ul{ padding: 0 0 0 8px; margin: 0; } #ygrp-sponsor #ov li{ list-style-type: square; padding: 6px 0; font-size: 77%; } #ygrp-sponsor #ov li a{ text-decoration: none; font-size: 130%; } #ygrp-sponsor #nc { background-color: #eee; margin-bottom: 20px; padding: 0 8px; } #ygrp-sponsor .ad{ padding: 8px 0; } #ygrp-sponsor .ad #hd1{ font-family: Arial; font-weight: bold; color: #628c2a; font-size: 100%; line-height: 122%; } #ygrp-sponsor .ad a{ text-decoration: none; } #ygrp-sponsor .ad a:hover{ text-decoration: underline; } #ygrp-sponsor .ad p{ margin: 0; } #ygrp-reco { margin-bottom: 20px; padding: 0px; } #ygrp-reco #reco-head { font-weight: bold; color: #ff7900; } #reco-grpname{ font-weight: bold; margin-top: 10px; } #reco-category{ font-size: 77%; } #reco-desc{ font-size: 77%; } #ygrp-vital{ background-color: #e0ecee; margin-bottom: 20px; padding: 2px 0 8px 8px; } #ygrp-vital #vithd{ font-size: 77%; font-family: Verdana; font-weight: bold; color: #333; text-transform: uppercase; } #ygrp-vital ul{ padding: 0; margin: 2px 0; } #ygrp-vital ul li{ list-style-type: none; clear: both; border: 1px solid #e0ecee; } #ygrp-vital ul li .ct{ font-weight: bold; color: #ff7900; float: right; width: 2em; text-align:right; padding-right: .5em; } #ygrp-vital ul li .cat{ font-weight: bold; } #ygrp-vital a { text-decoration: none; } #ygrp-vital a:hover{ text-decoration: underline; } #ygrp-mlmsg #post{ clear:both; background-color:#e7eff7; padding:10px; margin-top:10px; text-align:left; font-size:100%; font-weight:bold; zoom: 1; } #ygrp-vitnav{ padding:10px 0; font-family:Verdana; font-size:77%; clear:both; } #ygrp-vitnav a{padding:0 3px;} #ygrp-grft{ font-family: Verdana; font-size: 77%; padding: 15px 0; } #ygrp-ft{ border-top:1px solid #666; padding-top:10px; font-family:Verdana; font-size:77%; } #ygrp-msg .last, #ygrp-msg #ygrp-detail dd.last{border:0;} #ygrp-msg #ygrp-detail dl.first{ border-top:0; } #ygrp-msg #ygrp-detail dl.last{ border-bottom:0; } .bld{font-weight:bold;} --> </style> <head> <style type="text/css"> <!-- #ygrp-mkp{ border: 1px solid #d8d8d8; font-family: Arial; margin: 14px 0px; padding: 0px 14px; } #ygrp-mkp hr{ border: 1px solid #d8d8d8; } #ygrp-mkp #hd{ color: #628c2a; font-size: 85%; font-weight: bold; line-height: 122%; margin: 10px 0px; } #ygrp-mkp #ads{ margin-bottom: 10px; } #ygrp-mkp .ad{ padding: 0 0; } #ygrp-mkp .ad a{ color: #0000ff; text-decoration: none; } --> </style> </head> <head> <style type="text/css"> <!-- #ygrp-sponsor #ygrp-lc{ font-family: Arial; } #ygrp-sponsor #ygrp-lc #hd{ margin: 10px 0px; font-weight: bold; font-size: 78%; line-height: 122%; } #ygrp-sponsor #ygrp-lc .ad{ margin-bottom: 10px; padding: 0 0; } --> </style> </head> <title>Flex Component Development</title> </head> <body style="background-color: #ffffff;"> <div id="ygrp-mlmsg" style="width:655px; position:relative;"> <div id="ygrp-banner"> <a href="http://groups.yahoo.com/group/flexcomponents;_ylc=X3oDMTJlMzNrdjk5BF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRzZWMDaGRyBHNsawNocGgEc3RpbWUDMTIyMDU1MjYxMQ--"> Flex Component Development </a> </div> <div id="ygrp-msg" style="width: 470px; margin:0; padding:0 25px 0 0; float:left; z-index:1;"> <h1>Messages In This Digest (5 Messages) </h1> <div id="ygrp-summary"> <a name="toc"></a> <dl> <dt>1a. </dt> <dd> <a href="#1a" class="ygrp-subj"> Re: [flexcoders] Re: Scale to fit, revisited</a> From: Richard Rodseth </dd> <dt>1b. </dt> <dd> <a href="#1b" class="ygrp-subj"> Re: [flexcoders] Re: Scale to fit, revisited</a> From: Richard Rodseth </dd> </dl> <dl> <dt>2a. </dt> <dd> <a href="#2a" class="ygrp-subj"> Re: Reload a component</a> From: Umer Khan </dd> <dt>2b. </dt> <dd> <a href="#2b" class="ygrp-subj"> Re: Reload a component</a> From: Josh McDonald </dd> <dt>2c. </dt> <dd> <a href="#2c" class="ygrp-subj"> Re: Reload a component</a> From: Umair Iqbal </dd> </dl> </div> <div style="float:right; font-size:77%; display:inline; padding-top:5px; font-weight:bold;"> <a href="http://groups.yahoo.com/group/flexcomponents/messages;_ylc=X3oDMTJnY2txMmp2BF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRzZWMDZG1zZwRzbGsDYXRwYwRzdGltZQMxMjIwNTUyNjEy?xm=1&m=p&tidx=1">View All Topics</a> | <a href="http://groups.yahoo.com/group/flexcomponents/post;_ylc=X3oDMTJnbmk3dWhpBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRzZWMDZG1zZwRzbGsDbnRwYwRzdGltZQMxMjIwNTUyNjEy">Create New Topic</a> </div> <h1> Messages </h1> <div id="ygrp-detail"> <dl class="first"> <dt>1a. </dt> <dd > <h2> <a href="http://groups.yahoo.com/group/flexcomponents/message/3957;_ylc=X3oDMTJyYWp1OTRlBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRtc2dJZAMzOTU3BHNlYwNkbXNnBHNsawN2bXNnBHN0aW1lAzEyMjA1NTI2MTI-" name="1a"> Re: [flexcoders] Re: Scale to fit, revisited </a> </h2> <h3>Posted by: "Richard Rodseth" <a href="mailto:rrodseth@...?Subject= Re%3A%20%5Bflexcoders%5D%20Re%3A%20Scale%20to%20fit%2C%20revisited"> rrodseth@... </a> <a href="http://profiles.yahoo.com/rcrodseth"> rcrodseth </a> </h3> <h4> Wed Sep 3, 2008 1:07 pm (PDT) </h4> <div class="ygrp-content"> On Tue, Sep 2, 2008 at 9:51 PM, Alex Harui <<a href="mailto:aharui%40adobe.com">aharui@adobe.<wbr>com</a>> wrote:<br> <br> > If you post a test case, I might get a chance to look at it<br> > .<br> > sdf<br> ><br> <br> Thanks, that would be great. A Flex project archive is attached, and the<br> complete code is also below. There's an HBox with two instances of the<br> ScaledContent component. The button on the right scales and centers<br> properly. The one on the left doesn't.<br> <br> TestScaledContent.<wbr>mxml<br> <br> <?xml version="1.0" encoding="utf-<wbr>8"?><br> <mx:Application xmlns:mx="<a href="http://www.adobe.com/2006/mxml">http://www.adobe.<wbr>com/2006/<wbr>mxml</a>" layout="vertical"<br> xmlns:comp="<wbr>comp.*"<br> ><br> <mx:HBox width="90%" height="90%" borderStyle=<wbr>"solid"><br> <comp:ScaledContent width="50%" height="100%<wbr>" borderStyle=<wbr>"solid" ><br> <mx:Button label="This is a button" /><br> </comp:ScaledConten<wbr>t><br> <comp:ScaledContent width="50%" height="100%<wbr>" borderStyle=<wbr>"solid" ><br> <mx:Button label="This is a button" width="1400"<br> height="1400" cornerRadius=<wbr>"100"/><br> </comp:ScaledConten<wbr>t><br> </mx:HBox><br> <br> </mx:Application><br> <br> ScaledContent.<wbr>mxml:<br> <br> <?xml version="1.0" encoding="utf-<wbr>8"?><br> <mx:Canvas xmlns:mx="<a href="http://www.adobe.com/2006/mxml">http://www.adobe.<wbr>com/2006/<wbr>mxml</a>" xmlns:comp="<wbr>comp.*"<br> horizontalScrollPol<wbr>icy="off" verticalScrollPolic<wbr>y="off"<br> ><br> <br> <mx:Metadata><br> [DefaultProperty(<wbr>"contents"<wbr>)]<br> </mx:Metadata><br> <br> <mx:Script><br> <![CDATA[<br> import mx.core.UIComponent<wbr>;<br> <br> private var _contents:UICompone<wbr>nt;<br> private var _contentsChanged:<wbr>Boolean = false;<br> <br> public function set contents(value:<wbr>UIComponent)<wbr>:void {<br> _contents = value;<br> _contentsChanged = true;<br> this.invalidateProp<wbr>erties();<br> }<br> <br> override protected function commitProperties(<wbr>):void {<br> super.commitPropert<wbr>ies();<br> <br> if (_contentsChanged) {<br> contentHolder.<wbr>content = _contents;<br> _contentsChanged = false;<br> }<br> }<br> <br> override protected function measure():void {<br> super.measure(<wbr>);<br> minWidth = measuredWidth = 0; //<br> _contents.getExplic<wbr>itOrMeasuredWidt<wbr>h();<br> minHeight = measuredHeight = 0; //<br> _contents.getExplic<wbr>itOrMeasuredHeig<wbr>ht();<br> }<br> <br> override protected function<br> updateDisplayList(<wbr>unscaledWidth:<wbr>Number, unscaledHeight:<wbr>Number):void {<br> super.updateDisplay<wbr>List(unscaledWid<wbr>th, unscaledHeight)<wbr>;<br> contentHolder.<wbr>scaleContentToFi<wbr>t(unscaledWidth,<br> unscaledHeight)<wbr>;<br> contentHolder.<wbr>setActualSize(<wbr>unscaledWidth, unscaledHeight)<wbr>;<br> }<br> ]]><br> </mx:Script><br> <br> <comp:ScaledContent<wbr>Holder id="contentHolder" width="100%" height="100%<wbr>"><br> </comp:ScaledConten<wbr>tHolder><br> <br> </mx:Canvas><br> <br> ScaledContentHolder<wbr>.as:<br> <br> package comp<br> {<br> import mx.core.Container;<br> import mx.core.UIComponent<wbr>;<br> <br> public class ScaledContentHolder extends UIComponent<br> {<br> public function ScaledContentHolder<wbr>()<br> {<br> }<br> <br> private var _allowInvalidateSiz<wbr>e:Boolean = true;<br> private var _content:UIComponen<wbr>t;<br> private var _contentChanged:<wbr>Boolean = false;<br> <br> override protected function measure():void<br> {<br> super.measure(<wbr>);<br> minWidth = measuredWidth = 0; //<br> _content.getExplici<wbr>tOrMeasuredWidth<wbr>();<br> minHeight = measuredHeight = 0;<br> //_content.getExpli<wbr>citOrMeasuredHei<wbr>ght();<br> }<br> <br> public function set content(value:<wbr>UIComponent)<wbr>:void {<br> _content = value;<br> _contentChanged = true;<br> this.invalidateProp<wbr>erties();<br> }<br> <br> override protected function commitProperties(<wbr>):void {<br> super.commitPropert<wbr>ies();<br> if (_contentChanged) {<br> this.removeAllChild<wbr>ren();<br> this.addChild(<wbr>_content)<wbr>;<br> _contentChanged = false;<br> }<br> }<br> <br> private function removeAllChildren(<wbr>):void<br> {<br> while (numChildren> 0)<br> {<br> removeChildAt(<wbr>0);<br> }<br> }<br> <br> override public function invalidateSize(<wbr>):void<br> {<br> if (_allowInvalidateSi<wbr>ze)<br> super.invalidateSiz<wbr>e();<br> }<br> <br> public function scaleContentToFit(<wbr>unscaledWidth:<wbr>Number,<br> unscaledHeight:<wbr>Number):void {<br> var contentWidth:<wbr>Number = _content.getExplici<wbr>tOrMeasuredWidth<wbr>();<br> var contentHeight:<wbr>Number =<br> _content.getExplici<wbr>tOrMeasuredHeigh<wbr>t();<br> <br> var xScale:Number = (unscaledWidth / contentWidth)<wbr>;<br> var yScale:Number = (unscaledHeight / contentHeight)<wbr>;<br> var finalScale:Number = Math.min(xScale, yScale); // Preserve<br> aspect ratio<br> <br> _allowInvalidateSiz<wbr>e = false;<br> this.scaleX = finalScale;<br> this.scaleY = finalScale;<br> _allowInvalidateSiz<wbr>e = true;<br> <br> var scaledContentWidth:<wbr>Number = contentWidth * finalScale;<br> var scaledContentHeight<wbr>:Number = contentHeight * finalScale;<br> <br> this.move(unscaledW<wbr>idth/2 - scaledContentWidth/<wbr>2 ,<br> unscaledHeight/<wbr>2 - scaledContentHeight<wbr>/2);<br> <br> }<br> <br> override protected function updateDisplayList(<wbr>unscaledWidth:<wbr>Number,<br> unscaledHeight:<wbr>Number):void<br> {<br> super.updateDisplay<wbr>List(unscaledWid<wbr>th, unscaledHeight)<wbr>;<br> }<br> }<br> <br> }<br> </div> <div class="ygrp-dateline"> <div class="offset"> <a href="#toc"> Back to top </a> </div> <a href="mailto:rrodseth@...?Subject=Re%3A%20%5Bflexcoders%5D%20Re%3A%20Scale%20to%20fit%2C%20revisited"> Reply to <span class="bld">sender</span> </a> | <a href="mailto:flexcomponents@...?Subject= Re%3A%20%5Bflexcoders%5D%20Re%3A%20Scale%20to%20fit%2C%20revisited"> Reply to <span class="bld">group</span> </a> | <a href="http://groups.yahoo.com/group/flexcomponents/post;_ylc=X3oDMTJyZ2ZtYzdzBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRtc2dJZAMzOTU3BHNlYwNkbXNnBHNsawNycGx5BHN0aW1lAzEyMjA1NTI2MTI-?act=reply&messageNum=3957"> Reply <span class="bld">via web post</span> </a> <br> <a href="http://groups.yahoo.com/group/flexcomponents/message/3946;_ylc=X3oDMTM2N252aHMyBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRtc2dJZAMzOTU3BHNlYwNkbXNnBHNsawN2dHBjBHN0aW1lAzEyMjA1NTI2MTIEdHBjSWQDMzk0Ng--"> Messages in this topic </a> (8) </div> </dd> <dt>1b. </dt> <dd > <h2> <a href="http://groups.yahoo.com/group/flexcomponents/message/3958;_ylc=X3oDMTJyMTdjdWxrBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRtc2dJZAMzOTU4BHNlYwNkbXNnBHNsawN2bXNnBHN0aW1lAzEyMjA1NTI2MTI-" name="1b"> Re: [flexcoders] Re: Scale to fit, revisited </a> </h2> <h3>Posted by: "Richard Rodseth" <a href="mailto:rrodseth@...?Subject= Re%3A%20%5Bflexcoders%5D%20Re%3A%20Scale%20to%20fit%2C%20revisited"> rrodseth@... </a> <a href="http://profiles.yahoo.com/rcrodseth"> rcrodseth </a> </h3> <h4> Wed Sep 3, 2008 2:51 pm (PDT) </h4> <div class="ygrp-content"> Sorry folks. One more time with attachment renamed to foil the filters.<br> <br> On Wed, Sep 3, 2008 at 10:28 AM, Richard Rodseth <<a href="mailto:rrodseth%40gmail.com">rrodseth@gmail.<wbr>com</a>> wrote:<br> <br> > Cross-posting to flexcoders..<wbr>.<br> ><br> ><br> > On Wed, Sep 3, 2008 at 9:34 AM, Richard Rodseth <<a href="mailto:rrodseth%40gmail.com">rrodseth@gmail.<wbr>com</a>>wrote:<br> ><br> >> On Tue, Sep 2, 2008 at 9:51 PM, Alex Harui <<a href="mailto:aharui%40adobe.com">aharui@adobe.<wbr>com</a>> wrote:<br> >><br> >>> If you post a test case, I might get a chance to look at it<br> >>> .<br> >>> sdf<br> >>><br> >><br> >> Thanks, that would be great. A Flex project archive is attached, and the<br> >> complete code is also below. There's an HBox with two instances of the<br> >> ScaledContent component. The button on the right scales and centers<br> >> properly. The one on the left doesn't.<br> >><br> >> TestScaledContent.<wbr>mxml<br> >><br> >> <?xml version="1.0" encoding="utf-<wbr>8"?><br> >> <mx:Application xmlns:mx="<a href="http://www.adobe.com/2006/mxml">http://www.adobe.<wbr>com/2006/<wbr>mxml</a>"<br> >> layout="vertical"<br> >> xmlns:comp="<wbr>comp.*"<br> >> ><br> >> <mx:HBox width="90%" height="90%" borderStyle=<wbr>"solid"><br> >> <comp:ScaledContent width="50%" height="100%<wbr>" borderStyle=<wbr>"solid"<br> >> ><br> >> <mx:Button label="This is a button" /><br> >> </comp:ScaledConten<wbr>t><br> >> <comp:ScaledContent width="50%" height="100%<wbr>" borderStyle=<wbr>"solid"<br> >> ><br> >> <mx:Button label="This is a button" width="1400"<br> >> height="1400" cornerRadius=<wbr>"100"/><br> >> </comp:ScaledConten<wbr>t><br> >> </mx:HBox><br> >><br> >> </mx:Application><br> >><br> >><br> >> ScaledContent.<wbr>mxml:<br> >><br> >> <?xml version="1.0" encoding="utf-<wbr>8"?><br> >> <mx:Canvas xmlns:mx="<a href="http://www.adobe.com/2006/mxml">http://www.adobe.<wbr>com/2006/<wbr>mxml</a>" xmlns:comp="<wbr>comp.*"<br> >> horizontalScrollPol<wbr>icy="off" verticalScrollPolic<wbr>y="off"<br> >> ><br> >><br> >> <mx:Metadata><br> >> [DefaultProperty(<wbr>"contents"<wbr>)]<br> >> </mx:Metadata><br> >><br> >> <mx:Script><br> >> <![CDATA[<br> >> import mx.core.UIComponent<wbr>;<br> >><br> >> private var _contents:UICompone<wbr>nt;<br> >> private var _contentsChanged:<wbr>Boolean = false;<br> >><br> >> public function set contents(value:<wbr>UIComponent)<wbr>:void {<br> >> _contents = value;<br> >> _contentsChanged = true;<br> >> this.invalidateProp<wbr>erties();<br> >> }<br> >><br> >> override protected function commitProperties(<wbr>):void {<br> >> super.commitPropert<wbr>ies();<br> >><br> >> if (_contentsChanged) {<br> >> contentHolder.<wbr>content = _contents;<br> >> _contentsChanged = false;<br> >> }<br> >> }<br> >><br> >><br> >> override protected function measure():void {<br> >> super.measure(<wbr>);<br> >> minWidth = measuredWidth = 0; //<br> >> _contents.getExplic<wbr>itOrMeasuredWidt<wbr>h();<br> >> minHeight = measuredHeight = 0; //<br> >> _contents.getExplic<wbr>itOrMeasuredHeig<wbr>ht();<br> >> }<br> >><br> >> override protected function<br> >> updateDisplayList(<wbr>unscaledWidth:<wbr>Number, unscaledHeight:<wbr>Number):void {<br> >> super.updateDisplay<wbr>List(unscaledWid<wbr>th, unscaledHeight)<wbr>;<br> >> contentHolder.<wbr>scaleContentToFi<wbr>t(unscaledWidth,<br> >> unscaledHeight)<wbr>;<br> >> contentHolder.<wbr>setActualSize(<wbr>unscaledWidth,<br> >> unscaledHeight)<wbr>;<br> >> }<br> >> ]]><br> >> </mx:Script><br> >><br> >> <comp:ScaledContent<wbr>Holder id="contentHolder" width="100%"<br> >> height="100%<wbr>"><br> >> </comp:ScaledConten<wbr>tHolder><br> >><br> >> </mx:Canvas><br> >><br> >> ScaledContentHolder<wbr>.as:<br> >><br> >> package comp<br> >> {<br> >> import mx.core.Container;<br> >> import mx.core.UIComponent<wbr>;<br> >><br> >><br> >> public class ScaledContentHolder extends UIComponent<br> >> {<br> >> public function ScaledContentHolder<wbr>()<br> >> {<br> >> }<br> >><br> >> private var _allowInvalidateSiz<wbr>e:Boolean = true;<br> >> private var _content:UIComponen<wbr>t;<br> >> private var _contentChanged:<wbr>Boolean = false;<br> >><br> >> override protected function measure():void<br> >> {<br> >> super.measure(<wbr>);<br> >> minWidth = measuredWidth = 0; //<br> >> _content.getExplici<wbr>tOrMeasuredWidth<wbr>();<br> >> minHeight = measuredHeight = 0;<br> >> //_content.getExpli<wbr>citOrMeasuredHei<wbr>ght();<br> >> }<br> >><br> >> public function set content(value:<wbr>UIComponent)<wbr>:void {<br> >> _content = value;<br> >> _contentChanged = true;<br> >> this.invalidateProp<wbr>erties();<br> >> }<br> >><br> >> override protected function commitProperties(<wbr>):void {<br> >> super.commitPropert<wbr>ies();<br> >> if (_contentChanged) {<br> >> this.removeAllChild<wbr>ren();<br> >> this.addChild(<wbr>_content)<wbr>;<br> >> _contentChanged = false;<br> >> }<br> >> }<br> >><br> >><br> >> private function removeAllChildren(<wbr>):void<br> >> {<br> >> while (numChildren> 0)<br> >> {<br> >> removeChildAt(<wbr>0);<br> >> }<br> >> }<br> >><br> >><br> >> override public function invalidateSize(<wbr>):void<br> >> {<br> >> if (_allowInvalidateSi<wbr>ze)<br> >> super.invalidateSiz<wbr>e();<br> >> }<br> >><br> >> public function scaleContentToFit(<wbr>unscaledWidth:<wbr>Number,<br> >> unscaledHeight:<wbr>Number):void {<br> >> var contentWidth:<wbr>Number =<br> >> _content.getExplici<wbr>tOrMeasuredWidth<wbr>();<br> >> var contentHeight:<wbr>Number =<br> >> _content.getExplici<wbr>tOrMeasuredHeigh<wbr>t();<br> >><br> >> var xScale:Number = (unscaledWidth / contentWidth)<wbr>;<br> >> var yScale:Number = (unscaledHeight / contentHeight)<wbr>;<br> >> var finalScale:Number = Math.min(xScale, yScale); // Preserve<br> >> aspect ratio<br> >><br> >> _allowInvalidateSiz<wbr>e = false;<br> >> this.scaleX = finalScale;<br> >> this.scaleY = finalScale;<br> >> _allowInvalidateSiz<wbr>e = true;<br> >><br> >> var scaledContentWidth:<wbr>Number = contentWidth * finalScale;<br> >> var scaledContentHeight<wbr>:Number = contentHeight * finalScale;<br> >><br> >> this.move(unscaledW<wbr>idth/2 - scaledContentWidth/<wbr>2 ,<br> >> unscaledHeight/<wbr>2 - scaledContentHeight<wbr>/2);<br> >><br> >> }<br> >><br> >> override protected function<br> >> updateDisplayList(<wbr>unscaledWidth:<wbr>Number, unscaledHeight:<wbr>Number):void<br> >> {<br> >> super.updateDisplay<wbr>List(unscaledWid<wbr>th, unscaledHeight)<wbr>;<br> >> }<br> >> }<br> >><br> >> }<br> >><br> ><br> ><br> <div class="ygrp-dateline"> <div class="offset"> <a href="#toc"> Back to top </a> </div> <a href="mailto:rrodseth@...?Subject=Re%3A%20%5Bflexcoders%5D%20Re%3A%20Scale%20to%20fit%2C%20revisited"> Reply to <span class="bld">sender</span> </a> | <a href="mailto:flexcomponents@...?Subject= Re%3A%20%5Bflexcoders%5D%20Re%3A%20Scale%20to%20fit%2C%20revisited"> Reply to <span class="bld">group</span> </a> | <a href="http://groups.yahoo.com/group/flexcomponents/post;_ylc=X3oDMTJyZDd0OHR0BF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRtc2dJZAMzOTU4BHNlYwNkbXNnBHNsawNycGx5BHN0aW1lAzEyMjA1NTI2MTI-?act=reply&messageNum=3958"> Reply <span class="bld">via web post</span> </a> <br> <a href="http://groups.yahoo.com/group/flexcomponents/message/3946;_ylc=X3oDMTM2OW8yZGZ0BF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRtc2dJZAMzOTU4BHNlYwNkbXNnBHNsawN2dHBjBHN0aW1lAzEyMjA1NTI2MTIEdHBjSWQDMzk0Ng--"> Messages in this topic </a> (8) </div> </dd> </dl> <dl class="last" > <dt>2a. </dt> <dd > <h2> <a href="http://groups.yahoo.com/group/flexcomponents/message/3959;_ylc=X3oDMTJyZWNucHB0BF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRtc2dJZAMzOTU5BHNlYwNkbXNnBHNsawN2bXNnBHN0aW1lAzEyMjA1NTI2MTI-" name="2a"> Re: Reload a component </a> </h2> <h3>Posted by: "Umer Khan" <a href="mailto:umeremail@...?Subject= Re%3A%20Reload%20a%20component"> umeremail@... </a> <a href="http://profiles.yahoo.com/umeremail"> umeremail </a> </h3> <h4> Wed Sep 3, 2008 10:57 pm (PDT) </h4> <div class="ygrp-content"> well, Each compenent you made in flex have an event Creation_complete, I have put some properties in this event, but this event fire only once (first time) , i mean after opening it if you go to another screen and come back to the previous screen this time creation_complete will not fire :( :( and properties wouldnt set . <br> <br> can you please tell me any event that fire every time if a component come on screen ?<br> <br> apologies for my bad english :(<br> Umer<br> <br> --- On Tue, 9/2/08, Josh McDonald <<a href="mailto:dznuts%40gmail.com">dznuts@gmail.<wbr>com</a>> wrote:<br> From: Josh McDonald <<a href="mailto:dznuts%40gmail.com">dznuts@gmail.<wbr>com</a>><br> Subject: Re: [flexcomponents] Reload a component<br> To: <a href="mailto:flexcomponents%40yahoogroups.com">flexcomponents@<wbr>yahoogroups.<wbr>com</a><br> Date: Tuesday, September 2, 2008, 10:07 PM<br> <br> Not sure exactly what you mean, could you explain in a little more detail, please?<br> <br> -Josh<br> <br> On Wed, Sep 3, 2008 at 12:05 PM, umeremail <umeremail@yahoo. com> wrote:<br> <br> hey?<br> <br> can i reload any component? i mean if i a component is being loaded<br> <br> then if we come back to same screen the component doesn't load neither<br> <br> its creationcomplete event fire?<br> <br> Is there any event that can tells me when a component is open , its<br> <br> fire every time when component is being requested. <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> -- <br> "Therefore, send not to know For whom the bell tolls. It tolls for thee."<br> <br> :: Josh 'G-Funk' McDonald<br> :: 0437 221 380 :: josh@gfunk007. com<br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> </div> <div class="ygrp-dateline"> <div class="offset"> <a href="#toc"> Back to top </a> </div> <a href="mailto:umeremail@...?Subject=Re%3A%20Reload%20a%20component"> Reply to <span class="bld">sender</span> </a> | <a href="mailto:flexcomponents@...?Subject= Re%3A%20Reload%20a%20component"> Reply to <span class="bld">group</span> </a> | <a href="http://groups.yahoo.com/group/flexcomponents/post;_ylc=X3oDMTJycmh1bjFtBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRtc2dJZAMzOTU5BHNlYwNkbXNnBHNsawNycGx5BHN0aW1lAzEyMjA1NTI2MTI-?act=reply&messageNum=3959"> Reply <span class="bld">via web post</span> </a> <br> <a href="http://groups.yahoo.com/group/flexcomponents/message/3952;_ylc=X3oDMTM2YXYxaXE5BF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRtc2dJZAMzOTU5BHNlYwNkbXNnBHNsawN2dHBjBHN0aW1lAzEyMjA1NTI2MTIEdHBjSWQDMzk1Mg--"> Messages in this topic </a> (6) </div> </dd> <dt>2b. </dt> <dd > <h2> <a href="http://groups.yahoo.com/group/flexcomponents/message/3960;_ylc=X3oDMTJyNjF2cGttBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRtc2dJZAMzOTYwBHNlYwNkbXNnBHNsawN2bXNnBHN0aW1lAzEyMjA1NTI2MTI-" name="2b"> Re: Reload a component </a> </h2> <h3>Posted by: "Josh McDonald" <a href="mailto:dznuts@...?Subject= Re%3A%20Reload%20a%20component"> dznuts@... </a> <a href="http://profiles.yahoo.com/brucethebruiser"> brucethebruiser </a> </h3> <h4> Wed Sep 3, 2008 11:23 pm (PDT) </h4> <div class="ygrp-content"> You mean if you switch away from the browser? Or if you switch to a<br> different child in a ViewStack or similar?<br> <br> Your English isn't too bad, so no need to worry. Just need to know exactly<br> what you're after :)<br> <br> -Josh<br> <br> On Thu, Sep 4, 2008 at 2:51 PM, Umer Khan <<a href="mailto:umeremail%40yahoo.com">umeremail@yahoo.<wbr>com</a>> wrote:<br> <br> > well, Each compenent you made in flex have an event Creation_complete, I<br> > have put some properties in this event, but this event fire only once (first<br> > time) , i mean after opening it if you go to another screen and come back to<br> > the previous screen this time creation_complete will not fire :( :( and<br> > properties wouldnt set .<br> ><br> > can you please tell me any event that fire every time if a component come<br> > on screen ?<br> ><br> > apologies for my bad english :(<br> > Umer<br> ><br> > --- On *Tue, 9/2/08, Josh McDonald <<a href="mailto:dznuts%40gmail.com">dznuts@gmail.<wbr>com</a>>* wrote:<br> ><br> > From: Josh McDonald <<a href="mailto:dznuts%40gmail.com">dznuts@gmail.<wbr>com</a>><br> > Subject: Re: [flexcomponents] Reload a component<br> > To: <a href="mailto:flexcomponents%40yahoogroups.com">flexcomponents@<wbr>yahoogroups.<wbr>com</a><br> > Date: Tuesday, September 2, 2008, 10:07 PM<br> ><br> > Not sure exactly what you mean, could you explain in a little more<br> > detail, please?<br> ><br> > -Josh<br> ><br> > On Wed, Sep 3, 2008 at 12:05 PM, umeremail <umeremail@yahoo. com<<a href="mailto:umeremail%40yahoo.com">umeremail@yahoo.<wbr>com</a>><br> > > wrote:<br> ><br> >> hey?<br> >> can i reload any component? i mean if i a component is being loaded<br> >> then if we come back to same screen the component doesn't load neither<br> >> its creationcomplete event fire?<br> >> Is there any event that can tells me when a component is open , its<br> >> fire every time when component is being requested.<br> >><br> >><br> ><br> ><br> > --<br> > "Therefore, send not to know For whom the bell tolls. It tolls for thee."<br> ><br> > :: Josh 'G-Funk' McDonald<br> > :: 0437 221 380 :: josh@gfunk007. com <<a href="mailto:josh%40gfunk007.com">josh@gfunk007.<wbr>com</a>><br> ><br> ><br> > <br> ><br> -- <br> "Therefore, send not to know For whom the bell tolls. It tolls for thee."<br> <br> <a href="http://flex.joshmcdonald.info/">http://flex.<wbr>joshmcdonald.<wbr>info/</a><br> <br> :: Josh 'G-Funk' McDonald<br> :: 0437 221 380 :: <a href="mailto:josh%40gfunk007.com">josh@gfunk007.<wbr>com</a><br> </div> <div class="ygrp-dateline"> <div class="offset"> <a href="#toc"> Back to top </a> </div> <a href="mailto:dznuts@...?Subject=Re%3A%20Reload%20a%20component"> Reply to <span class="bld">sender</span> </a> | <a href="mailto:flexcomponents@...?Subject= Re%3A%20Reload%20a%20component"> Reply to <span class="bld">group</span> </a> | <a href="http://groups.yahoo.com/group/flexcomponents/post;_ylc=X3oDMTJyZjA1aWlzBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRtc2dJZAMzOTYwBHNlYwNkbXNnBHNsawNycGx5BHN0aW1lAzEyMjA1NTI2MTI-?act=reply&messageNum=3960"> Reply <span class="bld">via web post</span> </a> <br> <a href="http://groups.yahoo.com/group/flexcomponents/message/3952;_ylc=X3oDMTM2YTFpZTJjBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRtc2dJZAMzOTYwBHNlYwNkbXNnBHNsawN2dHBjBHN0aW1lAzEyMjA1NTI2MTIEdHBjSWQDMzk1Mg--"> Messages in this topic </a> (6) </div> </dd> <dt>2c. </dt> <dd > <h2> <a href="http://groups.yahoo.com/group/flexcomponents/message/3961;_ylc=X3oDMTJybmtmaHZzBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRtc2dJZAMzOTYxBHNlYwNkbXNnBHNsawN2bXNnBHN0aW1lAzEyMjA1NTI2MTI-" name="2c"> Re: Reload a component </a> </h2> <h3>Posted by: "Umair Iqbal" <a href="mailto:umkhi@...?Subject= Re%3A%20Reload%20a%20component"> umkhi@... </a> <a href="http://profiles.yahoo.com/umkhi"> umkhi </a> </h3> <h4> Thu Sep 4, 2008 9:50 am (PDT) </h4> <div class="ygrp-content"> Josh,<br> I think he is working with deep linking, tab navigator, view stack or any other navigation, after returning back to previous state he needs intimation by flex.<br> <br> Umer, <br> You need to add listener for view stack, tab navigator or tab/ button bar or you need add Watcher on selectedIndex.<br> if you are working with Deep Linking, then please tell me are you using BrowserManager, URLKit or some other.<br> <br> Regards,<br> Umair<br> <br> ----- Original Message ----<br> From: Josh McDonald <<a href="mailto:dznuts%40gmail.com">dznuts@gmail.<wbr>com</a>><br> To: <a href="mailto:flexcomponents%40yahoogroups.com">flexcomponents@<wbr>yahoogroups.<wbr>com</a><br> Sent: Thursday, September 4, 2008 11:23:11<br> Subject: Re: [flexcomponents] Reload a component<br> <br> You mean if you switch away from the browser? Or if you switch to a different child in a ViewStack or similar?<br> <br> Your English isn't too bad, so no need to worry. Just need to know exactly what you're after :)<br> <br> -Josh<br> <br> On Thu, Sep 4, 2008 at 2:51 PM, Umer Khan <umeremail@yahoo. com> wrote:<br> <br> well, Each compenent you made in flex have an event Creation_complete, I have put some properties in this event, but this event fire only once (first time) , i mean after opening it if you go to another screen and come back to the previous screen this time creation_complete will not fire :( :( and properties wouldnt set . <br> <br> can you please tell me any event that fire every time if a component come on screen ?<br> <br> apologies for my bad english :(<br> Umer<br> <br> --- On Tue, 9/2/08, Josh McDonald <dznuts@gmail. com> wrote:<br> <br> From: Josh McDonald <dznuts@gmail. com><br> Subject: Re: [flexcomponents] Reload a component<br> To: flexcomponents@ yahoogroups. com<br> Date: Tuesday, September 2, 2008, 10:07 PM<br> <br> Not sure exactly what you mean, could you explain in a little more detail, please?<br> <br> -Josh<br> <br> On Wed, Sep 3, 2008 at 12:05 PM, umeremail <umeremail@yahoo. com> wrote:<br> <br> hey?<br> can i reload any component? i mean if i a component is being loaded<br> then if we come back to same screen the component doesn't load neither<br> its creationcomplete event fire?<br> Is there any event that can tells me when a component is open , its<br> fire every time when component is being requested. <br> <br> -- <br> "Therefore, send not to know For whom the bell tolls. It tolls for thee."<br> <br> :: Josh 'G-Funk' McDonald<br> :: 0437 221 380 :: josh@gfunk007. com<br> <br> <br> <br> -- <br> "Therefore, send not to know For whom the bell tolls. It tolls for thee."<br> <br> <a href="http://flex.">http://flex.</a> joshmcdonald. info/<br> <br> :: Josh 'G-Funk' McDonald<br> :: 0437 221 380 :: josh@gfunk007. com<br> <br> <br> New Email addresses available on Yahoo!<br> Get the Email name you've always wanted on the new @ymail and @rocketmail. <br> Hurry before someone else does!<br> <a href="http://mail.promotions.yahoo.com/newdomains/aa/">http://mail.<wbr>promotions.<wbr>yahoo.com/<wbr>newdomains/<wbr>aa/</a> </div> <div class="ygrp-dateline"> <div class="offset"> <a href="#toc"> Back to top </a> </div> <a href="mailto:umkhi@...?Subject=Re%3A%20Reload%20a%20component"> Reply to <span class="bld">sender</span> </a> | <a href="mailto:flexcomponents@...?Subject= Re%3A%20Reload%20a%20component"> Reply to <span class="bld">group</span> </a> | <a href="http://groups.yahoo.com/group/flexcomponents/post;_ylc=X3oDMTJyNzFpMDZpBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRtc2dJZAMzOTYxBHNlYwNkbXNnBHNsawNycGx5BHN0aW1lAzEyMjA1NTI2MTI-?act=reply&messageNum=3961"> Reply <span class="bld">via web post</span> </a> <br> <a href="http://groups.yahoo.com/group/flexcomponents/message/3952;_ylc=X3oDMTM2aGxkMGRvBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRtc2dJZAMzOTYxBHNlYwNkbXNnBHNsawN2dHBjBHN0aW1lAzEyMjA1NTI2MTIEdHBjSWQDMzk1Mg--"> Messages in this topic </a> (6) </div> </dd> </dl> </div> </div> <!-- Sponsor --> <!-- |**|begin egp html banner|**| --> <div id="ygrp-sponsor" style="width:160px; float:right; clear:none; margin:0 0 25px 0; background:white;"> <!-- Network content --> <!-- Start Recommendations --> <div id="ygrp-reco"> </div> <!-- End Recommendations --> <!-- Start vitality --> <div id="ygrp-vital"> <div id="vithd">Recent Activity</div> <ul style="list-style-type:none; padding: 0; margin: 2px 0;"> <li style="clear: both;"> <div class="ct" style="float: right;"> <span style="display:none"> </span>8 </div> <div class="cat"><a href="http://groups.yahoo.com/group/flexcomponents/members;_ylc=X3oDMTJnYm1oOHNmBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRzZWMDdnRsBHNsawN2bWJycwRzdGltZQMxMjIwNTUyNjEy">New Members</a></div> </li> </ul> <a href="http://groups.yahoo.com/group/flexcomponents;_ylc=X3oDMTJmbmh2c2JwBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRzZWMDdnRsBHNsawN2Z2hwBHN0aW1lAzEyMjA1NTI2MTI-"> Visit Your Group </a> </div> <!-- Network content --> <div id="nc"> <div class="ad"> <div id="hd1">Yahoo! Finance</div> <p><a href="http://us.ard.yahoo.com/SIG=13oh5038r/M=493064.12016257.12445664.8674578/D=groups/S=1705007207:NC/Y=YAHOO/EXP=1220559812/L=/B=9FXeDELaX9Q-/J=1220552612681077/A=4507179/R=0/SIG=12de4rskk/*http://us.rd.yahoo.com/evt=50284/*http://finance.yahoo.com/personal-finance">It's Now Personal</a></p> <p>Guides, news,</p> <p>advice & more.</p> </div> <div class="ad"> <div id="hd1">Yahoo! Groups</div> <p><a href="http://us.ard.yahoo.com/SIG=13o9njqkm/M=493064.12662708.12980600.8674578/D=groups/S=1705007207:NC/Y=YAHOO/EXP=1220559812/L=/B=9VXeDELaX9Q-/J=1220552612681077/A=5349276/R=0/SIG=11nhsqmjq/*http://advision.webevents.yahoo.com/EverydayWellness/">Join people over 40</a></p> <p>who are finding ways</p> <p>to stay in shape.</p> </div> <div class="ad"> <div id="hd1">Healthy Living</div> <p><a href="http://us.ard.yahoo.com/SIG=13os99kea/M=493064.12662709.12980595.8674578/D=groups/S=1705007207:NC/Y=YAHOO/EXP=1220559812/L=/B=9lXeDELaX9Q-/J=1220552612681077/A=5349280/R=0/SIG=11ks6tatn/*http://advision.webevents.yahoo.com/HealthyLiving/">Learn to live life</a></p> <p>to the fullest</p> <p>on Yahoo! Groups.</p> </div> </div> <div id="nc"> <div class="ad"> <div id="hd1">Need to Reply?</div> <p>Click one of the "Reply" links to respond to a specific message in the Daily Digest.</p> </div> </div> </div> <div id="post"> <a href="http://groups.yahoo.com/group/flexcomponents/post;_ylc=X3oDMTJmNTl2N3FyBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRzZWMDZnRyBHNsawNudHBjBHN0aW1lAzEyMjA1NTI2MTI-" class="head"> Create New Topic </a> | <a href="http://groups.yahoo.com/group/flexcomponents;_ylc=X3oDMTJkZWozZDU2BF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRzZWMDZnRyBHNsawNocARzdGltZQMxMjIwNTUyNjEy" class="head"> Visit Your Group on the Web</a> </a> </div> <!------- Start Nav Bar ------> <div id="ygrp-vitnav"> <a href="http://groups.yahoo.com/group/flexcomponents/messages;_ylc=X3oDMTJmNDJ2NmE0BF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRzZWMDZnRyBHNsawNtc2dzBHN0aW1lAzEyMjA1NTI2MTI-">Messages</a> | <a href="http://groups.yahoo.com/group/flexcomponents/files;_ylc=X3oDMTJnMnEwMG9mBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRzZWMDZnRyBHNsawNmaWxlcwRzdGltZQMxMjIwNTUyNjEy">Files</a> | <a href="http://groups.yahoo.com/group/flexcomponents/photos;_ylc=X3oDMTJmN2YwN20zBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRzZWMDZnRyBHNsawNwaG90BHN0aW1lAzEyMjA1NTI2MTI-">Photos</a> | <a href="http://groups.yahoo.com/group/flexcomponents/links;_ylc=X3oDMTJnY3F0ZzhnBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRzZWMDZnRyBHNsawNsaW5rcwRzdGltZQMxMjIwNTUyNjEy">Links</a> | <a href="http://groups.yahoo.com/group/flexcomponents/database;_ylc=X3oDMTJkM2EwZ21sBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRzZWMDZnRyBHNsawNkYgRzdGltZQMxMjIwNTUyNjEy">Database</a> | <a href="http://groups.yahoo.com/group/flexcomponents/polls;_ylc=X3oDMTJnNWF0b2wxBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRzZWMDZnRyBHNsawNwb2xscwRzdGltZQMxMjIwNTUyNjEy">Polls</a> | <a href="http://groups.yahoo.com/group/flexcomponents/members;_ylc=X3oDMTJmZWJvYzM2BF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRzZWMDZnRyBHNsawNtYnJzBHN0aW1lAzEyMjA1NTI2MTI-">Members</a> | <a href="http://groups.yahoo.com/group/flexcomponents/calendar;_ylc=X3oDMTJldHVzc28zBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRzZWMDZnRyBHNsawNjYWwEc3RpbWUDMTIyMDU1MjYxMg--">Calendar</a> </div> <div id="ygrp-ft"> <a href="http://groups.yahoo.com/;_ylc=X3oDMTJlNjBxbml2BF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRzZWMDZnRyBHNsawNnZnAEc3RpbWUDMTIyMDU1MjYxMg--"><img src="http://us.i1.yimg.com/us.yimg.com/i/yg/img/logo/ma_grp_160.gif" height="15" width="106" border="0" alt="Yahoo! Groups"></a > <br> <a href="http://groups.yahoo.com/group/flexcomponents/join;_ylc=X3oDMTJnYWZwZWJoBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRzZWMDZnRyBHNsawNzdG5ncwRzdGltZQMxMjIwNTUyNjEy">Change settings via the Web</a> (Yahoo! ID required) <br> Change settings via email: <a href="mailto:flexcomponents-normal@...?subject=Email Delivery: Indiviual Email">Switch delivery to Individual</a> | <a href = "mailto:flexcomponents-traditional@...?subject=Change Delivery Format: Traditional">Switch format to Traditional</a> <br> <a href="http://groups.yahoo.com/group/flexcomponents;_ylc=X3oDMTJlbmU0NWtuBF9TAzk3MzU5NzE1BGdycElkAzE4MjM1OTY3BGdycHNwSWQDMTcwNTAwNzIwNwRzZWMDZnRyBHNsawNocGYEc3RpbWUDMTIyMDU1MjYxMg--"> Visit Your Group </a> | <a href="http://docs.yahoo.com/info/terms/"> Yahoo! Groups Terms of Use </a> | <a href="mailto:flexcomponents-unsubscribe@...?subject=Unsubscribe"> Unsubscribe </a> </div> <img src="http://geo.yahoo.com/serv?s=97359715/grpId=18235967/grpspId=1705007207/msgId=844/stime=1220552611/nc1=4507179/nc2=5349276/nc3=5349280" width="1" height="1" border="0" alt=""> </div> </body> </html> You've recently sent an email to howard@.... To stop unwanted spam emails arriving in their inbox, howard@... uses the Tonsho verification process. For the email you sent to be received, you'll just need to visit the link below. Once you've done this you'll be added to their approved contact list and won't have to perform this check in the future. Authenticate yourself by following this link: http://www.tonsho.com/authenticate.jsp?sender=flexcomponents@...&smtp=66.218.67.213&recipient=howard@... -------------------------------------------------------------------------------------- Are you fed up with the amount of junk mails you receive every day? The Tonsho service for filtering spam is a FREE, quick and easy solution. To find out more or sign up visit http://www.tonsho.com?pin=1001 This mail has been sent to you via Tonsho, a free service allowing you to send emails with very large attachments directly from your normal email account. Tonsho puts an end to mails bouncing back because they are too big. Flex Component Development Flex Component Development Messages In This Digest (5 Messages) 1a. Re: [flexcoders] Re: Scale to fit, revisited From: Richard Rodseth 1b. Re: [flexcoders] Re: Scale to fit, revisited From: Richard Rodseth 2a. Re: Reload a component From: Umer Khan 2b. Re: Reload a component From: Josh McDonald 2c. Re: Reload a component From: Umair Iqbal View All Topics | Create New Topic Messages 1a. Re: [flexcoders] Re: Scale to fit, revisited Posted by: "Richard Rodseth" rrodseth@... rcrodseth Wed Sep 3, 2008 1:07 pm (PDT) On Tue, Sep 2, 2008 at 9:51 PM, Alex Harui < aharui@... > wrote: > If you post a test case, I might get a chance to look at it > . > sdf > Thanks, that would be great. A Flex project archive is attached, and the complete code is also below. There's an HBox with two instances of the ScaledContent component. The button on the right scales and centers properly. The one on the left doesn't. TestScaledContent.mxml <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx=" http://www.adobe.com/2006/mxml " layout="vertical" xmlns:comp="comp.*" > <mx:HBox width="90%" height="90%" borderStyle="solid"> <comp:ScaledContent width="50%" height="100%" borderStyle="solid" > <mx:Button label="This is a button" /> </comp:ScaledContent> <comp:ScaledContent width="50%" height="100%" borderStyle="solid" > <mx:Button label="This is a button" width="1400" height="1400" cornerRadius="100"/> </comp:ScaledContent> </mx:HBox> </mx:Application> ScaledContent.mxml: <?xml version="1.0" encoding="utf-8"?> <mx:Canvas xmlns:mx=" http://www.adobe.com/2006/mxml " xmlns:comp="comp.*" horizontalScrollPolicy="off" verticalScrollPolicy="off" > <mx:Metadata> [DefaultProperty("contents")] </mx:Metadata> <mx:Script> <![CDATA[ import mx.core.UIComponent; private var _contents:UIComponent; private var _contentsChanged:Boolean = false; public function set contents(value:UIComponent):void { _contents = value; _contentsChanged = true; this.invalidateProperties(); } override protected function commitProperties():void { super.commitProperties(); if (_contentsChanged) { contentHolder.content = _contents; _contentsChanged = false; } } override protected function measure():void { super.measure(); minWidth = measuredWidth = 0; // _contents.getExplicitOrMeasuredWidth(); minHeight = measuredHeight = 0; // _contents.getExplicitOrMeasuredHeight(); } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { super.updateDisplayList(unscaledWidth, unscaledHeight); contentHolder.scaleContentToFit(unscaledWidth, unscaledHeight); contentHolder.setActualSize(unscaledWidth, unscaledHeight); } ]]> </mx:Script> <comp:ScaledContentHolder id="contentHolder" width="100%" height="100%"> </comp:ScaledContentHolder> </mx:Canvas> ScaledContentHolder.as: package comp { import mx.core.Container; import mx.core.UIComponent; public class ScaledContentHolder extends UIComponent { public function ScaledContentHolder() { } private var _allowInvalidateSize:Boolean = true; private var _content:UIComponent; private var _contentChanged:Boolean = false; override protected function measure():void { super.measure(); minWidth = measuredWidth = 0; // _content.getExplicitOrMeasuredWidth(); minHeight = measuredHeight = 0; //_content.getExplicitOrMeasuredHeight(); } public function set content(value:UIComponent):void { _content = value; _contentChanged = true; this.invalidateProperties(); } override protected function commitProperties():void { super.commitProperties(); if (_contentChanged) { this.removeAllChildren(); this.addChild(_content); _contentChanged = false; } } private function removeAllChildren():void { while (numChildren> 0) { removeChildAt(0); } } override public function invalidateSize():void { if (_allowInvalidateSize) super.invalidateSize(); } public function scaleContentToFit(unscaledWidth:Number, unscaledHeight:Number):void { var contentWidth:Number = _content.getExplicitOrMeasuredWidth(); var contentHeight:Number = _content.getExplicitOrMeasuredHeight(); var xScale:Number = (unscaledWidth / contentWidth); var yScale:Number = (unscaledHeight / contentHeight); var finalScale:Number = Math.min(xScale, yScale); // Preserve aspect ratio _allowInvalidateSize = false; this.scaleX = finalScale; this.scaleY = finalScale; _allowInvalidateSize = true; var scaledContentWidth:Number = contentWidth * finalScale; var scaledContentHeight:Number = contentHeight * finalScale; this.move(unscaledWidth/2 - scaledContentWidth/2 , unscaledHeight/2 - scaledContentHeight/2); } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { super.updateDisplayList(unscaledWidth, unscaledHeight); } } } Back to top Reply to sender | Reply to group | Reply via web post Messages in this topic (8) 1b. Re: [flexcoders] Re: Scale to fit, revisited Posted by: "Richard Rodseth" rrodseth@... rcrodseth Wed Sep 3, 2008 2:51 pm (PDT) Sorry folks. One more time with attachment renamed to foil the filters. On Wed, Sep 3, 2008 at 10:28 AM, Richard Rodseth < rrodseth@... > wrote: > Cross-posting to flexcoders... > > > On Wed, Sep 3, 2008 at 9:34 AM, Richard Rodseth < rrodseth@... >wrote: > >> On Tue, Sep 2, 2008 at 9:51 PM, Alex Harui < aharui@... > wrote: >> >>> If you post a test case, I might get a chance to look at it >>> . >>> sdf >>> >> >> Thanks, that would be great. A Flex project archive is attached, and the >> complete code is also below. There's an HBox with two instances of the >> ScaledContent component. The button on the right scales and centers >> properly. The one on the left doesn't. >> >> TestScaledContent.mxml >> >> <?xml version="1.0" encoding="utf-8"?> >> <mx:Application xmlns:mx=" http://www.adobe.com/2006/mxml " >> layout="vertical" >> xmlns:comp="comp.*" >> > >> <mx:HBox width="90%" height="90%" borderStyle="solid"> >> <comp:ScaledContent width="50%" height="100%" borderStyle="solid" >> > >> <mx:Button label="This is a button" /> >> </comp:ScaledContent> >> <comp:ScaledContent width="50%" height="100%" borderStyle="solid" >> > >> <mx:Button label="This is a button" width="1400" >> height="1400" cornerRadius="100"/> >> </comp:ScaledContent> >> </mx:HBox> >> >> </mx:Application> >> >> >> ScaledContent.mxml: >> >> <?xml version="1.0" encoding="utf-8"?> >> <mx:Canvas xmlns:mx=" http://www.adobe.com/2006/mxml " xmlns:comp="comp.*" >> horizontalScrollPolicy="off" verticalScrollPolicy="off" >> > >> >> <mx:Metadata> >> [DefaultProperty("contents")] >> </mx:Metadata> >> >> <mx:Script> >> <![CDATA[ >> import mx.core.UIComponent; >> >> private var _contents:UIComponent; >> private var _contentsChanged:Boolean = false; >> >> public function set contents(value:UIComponent):void { >> _contents = value; >> _contentsChanged = true; >> this.invalidateProperties(); >> } >> >> override protected function commitProperties():void { >> super.commitProperties(); >> >> if (_contentsChanged) { >> contentHolder.content = _contents; >> _contentsChanged = false; >> } >> } >> >> >> override protected function measure():void { >> super.measure(); >> minWidth = measuredWidth = 0; // >> _contents.getExplicitOrMeasuredWidth(); >> minHeight = measuredHeight = 0; // >> _contents.getExplicitOrMeasuredHeight(); >> } >> >> override protected function >> updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { >> super.updateDisplayList(unscaledWidth, unscaledHeight); >> contentHolder.scaleContentToFit(unscaledWidth, >> unscaledHeight); >> contentHolder.setActualSize(unscaledWidth, >> unscaledHeight); >> } >> ]]> >> </mx:Script> >> >> <comp:ScaledContentHolder id="contentHolder" width="100%" >> height="100%"> >> </comp:ScaledContentHolder> >> >> </mx:Canvas> >> >> ScaledContentHolder.as: >> >> package comp >> { >> import mx.core.Container; >> import mx.core.UIComponent; >> >> >> public class ScaledContentHolder extends UIComponent >> { >> public function ScaledContentHolder() >> { >> } >> >> private var _allowInvalidateSize:Boolean = true; >> private var _content:UIComponent; >> private var _contentChanged:Boolean = false; >> >> override protected function measure():void >> { >> super.measure(); >> minWidth = measuredWidth = 0; // >> _content.getExplicitOrMeasuredWidth(); >> minHeight = measuredHeight = 0; >> //_content.getExplicitOrMeasuredHeight(); >> } >> >> public function set content(value:UIComponent):void { >> _content = value; >> _contentChanged = true; >> this.invalidateProperties(); >> } >> >> override protected function commitProperties():void { >> super.commitProperties(); >> if (_contentChanged) { >> this.removeAllChildren(); >> this.addChild(_content); >> _contentChanged = false; >> } >> } >> >> >> private function removeAllChildren():void >> { >> while (numChildren> 0) >> { >>   |