Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex ScaleX scaleY是否会更改宽度和高度?_Apache Flex_Actionscript 3 - Fatal编程技术网

Apache flex ScaleX scaleY是否会更改宽度和高度?

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"

我在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时,缩放确实会影响宽度和高度。我有点惊讶,第三个跟踪语句没有立即反映出来,但我猜这与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倍,这让我有点困惑。我仔细检查了静态宽度。