放置在舞台上时ActionScript对象大小问题

时间:2013-05-06 10:59:28

标签: actionscript-3 flash

我对Actionscript和Flash相对较新,但在Microsoft环境中有很多经验,所以我想做的只是在.NET中工作但是在Flash中我的根本不同我不害怕。

我遇到的问题是我想在我的舞台上添加一个库对象(在本例中是一个简单的矩形),使用ActionScript 3动态创建它。

如果我将对象拖到舞台上,它会按预期显示,高度为33像素,宽度为152像素

如果我实例化使用ActionScript,那么:

var rect1:myObject = new myObject() ;
rect1.x = 0 ;
rect1.y = 0 ;
addChild ( rect1 ); 

按预期显示

我现在想把另一个直接放在下面,所以我写道:

var rect2:myObject = new myObject() ;
rect2.x = 0 ;
rect2.y = rect1.height ;
addChild ( rect2 ); 

我希望它与第一个对象对齐,触摸它的下边缘,但它看起来像在第一个对象下方(调试报告rect1.height实际设置为106.5!)

如果我硬编码rect2.y = 33,它会按预期显示,触摸第一个对象

这里到底发生了什么。我已经看过舞台的scaleY,但它只是设置为1.我还查看了stage.height(273.9)和stage.stageHeight(768)以查看缩放是否存在相关性,但这并不是'也工作。

非常感谢任何帮助。感觉就像我想念的那样明显,但我已经用谷歌搜索了自己,并没有任何快乐。

此致 尼尔

2 个答案:

答案 0 :(得分:1)

试试这个:rect2.y = rect1.y + rect1.height ;

答案 1 :(得分:1)

听起来可能是注册点问题。

注册点是指定符号实例相对于其x,y位置的位置。

如果您双击图书馆中的符号,您将看到符号的内容,您将看到代表您的注册点的小十字准线。通常,您希望将内容对齐在注册点的中心或内容的左上角。

我的猜测是,这可能是您的问题,但在看不到您的内容时无法肯定地说。

此注册点也用于轮换。如果要围绕其中心点旋转对象,则需要确保注册点位于对象的中心。