开发者

Does the ScaleX scaleY makes the Width and height change?

Am working in flex 4 the sample mxml is

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" 
               minWidth="955" minHeight="600" >

    <fx:Script>
        <![CDATA[
            protected function button1_clickHandler(event:MouseEvent):void
            {
                // TODO Auto-generated method stub
                trace(hgroup.width ,hgroup.height);
                hgroup.scaleX = 1.5;
                hgroup.scaleY = 1.5; 
                trace(hgroup.scaleX, hgroup.scaleY);
                trace(hgroup.width ,hgroup.height);
            }
        ]]>
    </fx:Script>

    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <s:HGroup id="hgroup" width="85%" height="85%" clipAndEnableScrolling="true">
        <s:Button click="button1_clickHandler(event)" label="Click to Scale"/>
    </s:HGroup>
</s:Application>

If i debug

on a first button click the trace shows like this

870 535
1.5 1.5
870 535

on second click of button the trace shows like this

580 356.6666666666667
1.5 1.5
580 356.6666666666667

on the perpendicular clicks it shows as like the second click

my question is does the scaleX scaleY affects the width height??

please guide me i need increase in width h开发者_运维技巧eight perpendicular with the scaleX scaleY


Yes, scaling does affect width and height. I'm a little surprised that isn't reflected immediately in the third trace statement but my guess is it has something to do with the invalidation and redrawing of flex components. I double checked on a simple non-flex app and the properties for width and height updated immediately.

=============

Finally i got Answer the scaling will not change width height. but what the thing is i used the percent width height so it get reduced. I double checked with the static width height i does not get increased but when the width height increased the scaleX scaleY increases simultaneously.Keep this in the Mind

Thanks all for the support by Sudharsanan

~~~~Happy Coding~~~~~


Scaling effects the width or height of the object you scaled.
The contents of hgroup ( aka myBTN )will be unchanged.
What would be the point of scaling something if it didn't get bigger or smaller

protected function button1_clickHandler(event:MouseEvent):void{
// TODO Auto-generated method stub
  trace( hgroup.width ,hgroup.height);//52 22
  trace( myBTN.width ,myBTN.height);//52 22
  hgroup.scaleX = 1.5;
  hgroup.scaleY = 1.5; 
  hgroup.validateNow()
  trace( hgroup.scaleX, hgroup.scaleY);//1.5 1.5
  trace( hgroup.width ,hgroup.height);//78 33 // notice the scaling changed the container
  trace( myBTN.width ,myBTN.height);//52 22 // here is where you see the sizes unchanged
}

<mx:Canvas id="hgroup" >
  <mx:Button id="myBTN" label="Click" click="button1_clickHandler(event)" />
</mx:Canvas>

And to answer HotN on why there isn't an immediate update is because this is a display object and as such will follow the uiComponent framework.
To make the changes immediately you have to call "validateNow" To update the display list instead of waiting for the next frame.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜