性能宽度="100%"或左="0"右="0"更好?

Sta*_*nyk 2 apache-flex performance mxml

在最新的Adobe Flex sdk 4.6中,从性能视图来看哪个更好?

<s:Group width="100%" height="100%"/>
Run Code Online (Sandbox Code Playgroud)

要么

<s:Group left="0" right="0" top="0" bottom="0"/>
Run Code Online (Sandbox Code Playgroud)

谢谢.

rad*_*tao 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;
            }
Run Code Online (Sandbox Code Playgroud)

高度相同.

所以,看起来像:

  1. percenWidth的优先级高于topleft(如果两者都设置)
  2. topleft计算比percenWidth更容易(针对round,函数调用和条件的单减法)
  3. topleft可以用作样式声明.

此外,大多数Flex4皮肤都是基于顶部左侧 - 我认为也是出于性能原因.