或者更準確地說,我希望能夠獲得控件的頂部到其子控件頂部之間的距離(並添加所有控件的高度成員上面的孩子會產生似是而非的結果!),但獲得絕對座標並比較它們的過程看起來真的很糟糕。Flex:獲得控件集合的高度
我用這個功能來計算的2個標籤頂部之間的高度:
private static function GetRemainingHeight(oParent:Container, oChild:Container,
yParent:Number, yChild:Number):Number {
const ptParent:Point = oParent.localToGlobal(new Point(0, yParent));
const ptChild:Point = oChild.localToGlobal(new Point(0, yChild));
const nHeightOfEverythingAbove:Number = ptChild.y - ptParent.y;
trace(ptChild.y.toString() + '[' + yChild.toString() + '] - ' +
ptParent.y.toString() + '[' + yParent.toString() + '] = ' + nHeightOfEverythingAbove.toString() + ' > ' + oParent.height.toString());
return nHeightOfEverythingAbove;
}
注意oParent.y == yParent
和oChild.y == yChild
,但我做了這樣的結合的原因。 結果我得到的是非常令人驚訝的:
822 [329] - 124 [0] = 698> 439
這是不可能的,因爲oChild
頂部不會消失下面oParent
。我發現唯一出乎意料的是ptChild.y。所有其他數字看起來相當健全。所以我假設我的錯誤在於減去兩個不可比的數字。
當然,如果任何人有一種計算兩點之間差異的方法,不涉及localToGlobal()
,那也可以。
我正在使用3.5 SDK。