2011-05-17 46 views
2

我正在构建一个用户界面,我有两个面板需要移动和调整大小。他们必须看起来像一个单一的面板。当我移动或调整大小时,它工作正常。但是,当一个移动,另一个同时调整大小时......两者之间出现间断线。Flex 4过渡:同时移动和调整小故障

我该如何避免这种情况?

这是问题的一个工作示例:提前

<?xml version="1.0" encoding="utf-8"?> 
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" 
         xmlns:components="components.*" 
         frameRate="30" height="400" width="200" > 
    <s:states> 
    <s:State name="minimized" /> 
    <s:State name="maximized" /> 
    </s:states> 

    <s:transitions> 
    <s:Transition> 
     <s:Parallel duration="4000" targets="{[one, two]}"> 
     <s:Move target="{two}" /> 
     <s:Resize target="{one}" /> 
     </s:Parallel> 
    </s:Transition> 
    </s:transitions> 

    <s:Group id="one" 
      width="200" 
      height.minimized="20" height.maximized="200" 
      y="0"> 
    <s:Rect width="100%" height="100%"> 
     <s:fill> 
     <s:SolidColor color="black" /> 
     </s:fill> 
    </s:Rect> 
    </s:Group> 

    <s:Group id="two" 
      width="200" 
      height="200" 
      y.minimized="20" y.maximized="200"> 
    <s:Rect width="100%" height="100%"> 
     <s:fill> 
     <s:SolidColor color="black" /> 
     </s:fill> 
    </s:Rect> 
    </s:Group> 

    <s:Button click="currentState=(currentState=='minimized'? 'maximized' : 'minimized')" label="{currentState}" /> 

</s:WindowedApplication> 

谢谢!

更新:这里是与VGroup版本:无论是在同一VGroup

<?xml version="1.0" encoding="utf-8"?> 
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" 
         xmlns:components="components.*" 
         frameRate="30" height="400" width="400" > 
    <s:states> 
    <s:State name="minimized" /> 
    <s:State name="maximized" /> 
    </s:states> 

    <s:transitions> 
    <s:Transition> 
     <s:Parallel duration="4000" targets="{[one, two, three]}"> 
     <s:Move target="{two}" /> 
     <s:Resize target="{one, three}" /> 
     </s:Parallel> 
    </s:Transition> 
    </s:transitions> 

    <s:Group id="one" 
      width="200" 
      height.minimized="20" height.maximized="200" 
      y="0"> 
    <s:Rect width="100%" height="100%"> 
     <s:fill> 
     <s:SolidColor color="black" /> 
     </s:fill> 
    </s:Rect> 
    </s:Group> 
    <s:Group id="two" 
      width="200" 
      height="200" 
      y.minimized="20" y.maximized="200"> 
    <s:Rect width="100%" height="100%"> 
     <s:fill> 
     <s:SolidColor color="black" /> 
     </s:fill> 
    </s:Rect> 
    </s:Group> 


    <s:VGroup gap="0" left="200"> 
    <s:Group id="three" 
      width="200" 
      height.minimized="20" height.maximized="200" 
      y="0"> 
     <s:Rect width="100%" height="100%"> 
     <s:fill> 
      <s:SolidColor color="black" /> 
     </s:fill> 
     </s:Rect> 
    </s:Group> 
    <s:Group id="four" 
      width="200" 
      height="200"> 
     <s:Rect width="100%" height="100%"> 
     <s:fill> 
      <s:SolidColor color="black" /> 
     </s:fill> 
     </s:Rect> 
    </s:Group> 
    </s:VGroup> 

    <s:Button click="currentState=(currentState=='minimized'? 'maximized' : 'minimized')" label="{currentState}" /> 

</s:WindowedApplication> 

回答

0

广场和只改变第一板的高度。

+0

谢谢。但那是我的第一个方法。事实上,问题更严重。我只是改变了上面的例子来使用VGroup,并且在转换过程中毛刺更加宽广。任何其他想法? – nununo 2011-05-18 10:24:52

+0

您可以将您的代码与VGroup进行比较吗? – Constantiner 2011-05-18 10:28:09

+0

刚刚添加的VGroup代码! – nununo 2011-05-18 11:04:58