在最新的 Adobe Flex sdk 4.6 中,从性能角度来看,哪些方面更好?
<s:Group width="100%" height="100%"/>
或
<s:Group left="0" right="0" top="0" bottom="0"/>
谢谢。
最佳答案
在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;
}
高度也一样。
所以,看起来像:
- percenWidth 的优先级高于 top 和 left(如果两者都设置了)
- top和left比percenWidth更容易计算(对round进行单次减法、函数调用和条件)
- top 和 left 可以用作样式声明。
此外,大多数 Flex4 皮肤都是基于顶部和左侧 - 我认为也是出于性能原因。
关于performance - ="100%"和 left ="0"right ="0"哪个性能更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10896067/