性能宽度=“100%”或左=“0”右=“0”的效果更好?

时间:2012-06-05 10:58:12

标签: performance flex mxml relativelayout

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

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

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

谢谢。

1 个答案:

答案 0 :(得分: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 的优先级高于 top left (如果两者都已设置)
  2. 顶部 计算比 percenWidth 更容易(针对圆形的单减法) ,函数调用和条件)
  3. top left 可用作样式声明。
  4. 此外,大多数Flex4皮肤都基于 top left - 我认为也是出于性能原因。