我在flex 4中工作的样本mxml是
<?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>
如果我调试
在第一个按钮上单击跟踪显示如下
870 535
1.5 1.5
870 535
第二次点击按钮,跟踪显示如下
580 356.6666666666667
1.5 1.5
580 356.6666666666667
在垂直点击上显示就像第二次点击一样
我的问题是scaleX scaleY是否会影响宽度高度?
请指导我,我需要增加垂直宽度 使用scaleX scaleY答案 0 :(得分:1)
是的,缩放会影响宽度和高度。我有点惊讶,没有立即反映在第三个跟踪语句中,但我的猜测是它与flex组件的失效和重绘有关。我仔细检查了一个简单的非flex应用程序,并立即更新了width和height的属性。
=============
最后我得到了答案缩放不会改变宽度高度。但是我用的是宽度百分比高度,所以减少了。我用静态宽度高度双重检查我没有增加但是当宽度高度增加时,scaleX scaleY同时增加。在心灵中保持这个
感谢大家的支持 作者:Sudharsanan
~~~~快乐编码~~~~~
答案 1 :(得分:1)
缩放会影响您缩放的对象的宽度或高度 hgroup(又名myBTN)的内容将保持不变 如果它没有变大或变小,那么缩放某些东西会有什么意义
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>
回答关于为什么没有立即更新的HotN,因为这是一个显示对象,因此将遵循uiComponent框架。
要立即进行更改,您必须调用“validateNow”更新显示列表,而不是等待下一帧。