如下源码所示
protected changeItems(): void {
this._itemChanged = false;
var items: any[] = [];
var maxHeight = 0;
for (var i = 0, n = this.numChildren; i < n; i++) {
var item = (<UIComponent>this.getChildAt(i));
if (item) {
items.push(item);
maxHeight = Math.max(maxHeight, item.height * item.scaleY);
}
}
this.sortItem(items);
var left = 0;
for (i = 0, n = items.length; i < n; i++) {
item = items;
i && (left += (items[i - 1].width * items[i - 1].scaleX) + this._space);
item.left = left;
if (this._align == HBox.TOP) {
item.y = 0;
} else if (this._align == HBox.MIDDLE) {
item.y = (maxHeight - item.height * item.scaleY) * 0.5;
} else if (this._align == HBox.BOTTOM) {
item.y = maxHeight - item.height * item.scaleY;
}
//@charley:修正轴心点偏移的位置处理
item.pivotY && (item.y += item.pivotY * item.scaleY);
}
this._sizeChanged();
}
把子元素当成UIComponent类型,调整了元素的left属性,但是普通sprite元素没有left属性,导致修改不生效