/** * <p>重置对象的 <code>X</code> 轴(水平方向)布局。</p> * @private */ public function resetLayoutX():void { var owner:Sprite = this.owner as Sprite; if (!owner) return; var parent:Sprite = owner.parent as Sprite; if (parent) { if (!isNaN(centerX)) { owner.x = Math.round((parent.width - owner.displayWidth) * 0.5 + centerX + owner.pivotX * owner.scaleX); } else if (!isNaN(left)) { owner.x = Math.round(left + owner.pivotX * owner.scaleX); if (!isNaN(right)) { //TODO:如果用width,会死循环 owner.width = (parent._width - left - right) / (owner.scaleX || 0.01); } } else if (!isNaN(right)) { owner.x = Math.round(parent.width - owner.displayWidth - right + owner.pivotX * owner.scaleX); } } }
其中,
displayWidth是width*scaleX
本文详细解析了一个用于重置对象在X轴(水平方向)布局的算法。该算法考虑了父对象的宽度、对象自身的displayWidth、scaleX以及pivotX等属性,通过数学运算实现了对象位置的精确调整。特别关注了centerX、left和right属性的处理,并讨论了在不同情况下如何计算对象的x坐标。
1055

被折叠的 条评论
为什么被折叠?



