Laya layout算法

本文详细解析了一个用于重置对象在X轴(水平方向)布局的算法。该算法考虑了父对象的宽度、对象自身的displayWidth、scaleX以及pivotX等属性,通过数学运算实现了对象位置的精确调整。特别关注了centerX、left和right属性的处理,并讨论了在不同情况下如何计算对象的x坐标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        /**
         * <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

转载于:https://www.cnblogs.com/ixenos/p/11411628.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值