2012-06-05 60 views
2

在最新的Adobe Flex sdk 4.6中,从性能角度看什么更好?什么是更好的性能宽度=“100%”或左=“0”右=“0”?

<s:Group width="100%" height="100%"/> 

<s:Group left="0" right="0" top="0" bottom="0"/> 

谢谢。

+1

我真的不知道,但我相当肯定这种差异最好不过了。 – RIAstar

+0

我甚至不知道你会如何测试;我怀疑可能涉及很多因素。什么是布局类型?小组的孩子们是什么?宽度和高度 - 或者在您的情况下,百分比和百分比 - 属性,而左/右/上/下是样式。设置左/右/上/下不会绕过测量方法;但是设置宽度和高度会。不过,我不确定设置percentWidth和percentHeight。 MXML使用烟雾和镜像来设置percentWidth和percentHeight;这正是你的代码所要做的。 – JeffryHouser

回答

5

BasicLayout.updateDisplayList()我发现这个(环路每一个子元素):

if (!isNaN(percentWidth)) 
      { 
       var availableWidth:Number = unscaledWidth; 
       if (!isNaN(left)) 
        availableWidth -= left; 
       if (!isNaN(right)) 
        availableWidth -= right; 

       childWidth = Math.round(availableWidth * Math.min(percentWidth * 0.01, 1)); 
       elementMaxWidth = Math.min(layoutElement.getMaxBoundsWidth(), 
        maxSizeToFitIn(unscaledWidth, hCenter, left, right, layoutElement.getLayoutBoundsX())); 
      } 
      else if (!isNaN(left) && !isNaN(right)) 
      { 
       childWidth = unscaledWidth - right - left; 
      } 

而同为高。

所以,看起来像:

  1. percenWidth具有更高的优先级比顶部(如果同时设置)
  2. 顶部离开计算更容易比percenWidth(单轮减法,函数调用和条件s)
  3. top and left可用作样式声明。

此外,大多数FLEX4皮肤是基于顶部 - 我觉得对于性能的原因了。

+1

好帖子。还有一件事要说的是,左边会告诉组件离父母左边的距离。宽度的百分比只会告诉父母有多少宽度。根据您使用它的情况,您可能会以不同的结果结束。 –

相关问题