你知道如何强制一个Sprite来定位孩子参考0,0吗?

时间:2010-09-26 08:37:17

标签: actionscript-3

我正在尝试使用ScrollRect为Sprite添加一些滚动条。 Sprite开始为空,当我在500,500处添加一些东西时,它应该滚动,因为它在视口之外。不幸的是,在500,500处添加一个10x10 Sprite并不能让我的Sprite将其大小更改为510,510,而是将其10,10改为:: - (。

我们都知道DisplayObjectContainers根据放入的内容调整大小。但直到今天我才知道,如果你把东西放在500,500,那么Sprite / DObjContainer将不会从0,0到500,500调整,而只是直接跳到500,500.很烦人,因为我不能放内容波动的内容的滚动条。我需要0,0保持0,0,如果有东西放在500,500,精灵的高度应该增加500 +那个高度。

想法?洞察?

提前谢谢:: - D,Scrollmasters :: - D。

3 个答案:

答案 0 :(得分:1)

快速修复,也许不是太优雅...在Sprite中添加一个固定高度为500的Shape并将alpha设置为0或将其用于漂亮的彩色背景:)

答案 1 :(得分:1)

我是这样做的:

Container (sprite)
    scrollbars
    content (sprite with scrollrect)

在内容精灵中,绘制一个矩形以使其具有完整大小。

答案 2 :(得分:1)

这不会改变Sprite的高度/宽度,所以我不确定它会对你有所帮助。但是如果您控制滚动的代码,您可以通过获取对象并添加x + width和y + height来计算对象的大小(考虑其原点始终为0,0)。这样的事情。

var rect:Rectangle = sp.getBounds(sp);
var w:Number = Math.abs(rect.x) + rect.width;
var h:Number = Math.abs(rect.y) + rect.height;

我正在使用Math.abs以防您在负偏移处添加子项,但是根据您的描述并非如此,因此您可以避免该步骤。