Apache flex ScaleX scaleY是否会更改宽度和高度?
我在flex 4中工作,示例mxml是Apache flex ScaleX scaleY是否会更改宽度和高度?,apache-flex,actionscript-3,Apache Flex,Actionscript 3,我在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"
<?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时,缩放确实会影响宽度和高度。我有点惊讶,第三个跟踪语句没有立即反映出来,但我猜这与flex组件的失效和重画有关。我仔细检查了一个简单的非flex应用程序,宽度和高度的属性立即更新 ============= 最后我得到的答案是缩放不会改变宽度和高度。但问题是,我使用了宽度和高度的百分比,所以它被缩小了。我仔细检查了静态宽度-高度,我没有增加,但是当宽度-高度增加时,scaleX-scaleY会同时增加。记住这一点 谢谢大家的支持 苏达萨南
~~~~快乐编码~~~~~缩放会影响缩放对象的宽度或高度。
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>
受保护的功能按钮1\u clickHandler(事件:MouseeEvent):无效{
//TODO自动生成的方法存根
跟踪(hgroup.width,hgroup.height);//52 22
跟踪(myBTN.width,myBTN.height);//52 22
hgroup.scaleX=1.5;
hgroup.scaleY=1.5;
hgroup.validateNow()
跟踪(hgroup.scaleX,hgroup.scaleY);//1.51.5
trace(hgroup.width,hgroup.height);//78 33//注意缩放改变了容器
trace(myBTN.width,myBTN.height);//52 22//在这里可以看到大小没有变化
}
回答霍顿为什么没有立即更新是因为这是一个显示对象,因此将遵循uiComponent框架。要立即进行更改,您必须调用“validateNow”来更新显示列表,而不是等待下一帧。为什么不修改宽度和高度属性,以及evoid缩放问题?@Gabitsh感谢您的评论。但我需要同时增加缩放和宽度高度。当scaleX和scaleY增加时,需要增加宽度和高度。进一步计算所需的宽度和高度称为Scrollrect。将百分比大小与刻度混合会带来各种各样的麻烦。布局管理器将
HGroup
设置为父容器的85%,同时应用1.5的比例。不好的。您应该缩放按钮。@bummzack我应用了静态宽度-高度,然后应用了scaleX-scaleY,但不幸的是宽度-高度似乎相同。这是示例代码,但我需要在组中使用相同的场景。但是请注意,scaleX scaleY增加了1.5倍,但在下一个轨迹上,宽度减小了。请说明原因。嗯,但没有效果,首先单击“1024 620 1.5 1.5 1024 620”,然后单击“682.66666666666 413.3333333333 1.5 1.5 682.666666666666666 413.3333333333”,我想你在flex 3中工作,即使我的宽度高度在flex 4.flex 3或flex 4中减小,这并不重要。一旦比例设置为1.5,我的示例中hgroup的内容将不会改变宽度或高度。点击越来越多将不会再改变比例,因为比例是1.5,我真的不知道你从哪里得到你的数字。所以,请停止猜测,尝试一下这个例子。谢谢你的帮助。最后我想到缩放不会改变宽度和高度。但问题是,我使用了宽度和高度的百分比,所以它被缩小了。你的画布大小增加了1.5倍,这让我有点困惑。我仔细检查了静态宽度。