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

Actionscript 3 放置在舞台上时ActionScript对象大小问题,actionscript-3,flash,Actionscript 3,Flash,我对Actionscript和Flash相对较新,但在Microsoft环境中有丰富的经验,所以我尝试在.NET中工作,但Flash中有些东西根本不同,我恐怕无法理解 我遇到的问题是,我想将一个库对象(在本例中是一个简单的矩形)添加到我的stage中,使用actionscript3动态创建它 如果我将对象拖动到舞台上,它将显示为预期的高度33像素,宽度152像素 如果我使用ActionScript进行实例化,如下所示: var rect1:myObject = new myObject() ;

我对Actionscript和Flash相对较新,但在Microsoft环境中有丰富的经验,所以我尝试在.NET中工作,但Flash中有些东西根本不同,我恐怕无法理解

我遇到的问题是,我想将一个库对象(在本例中是一个简单的矩形)添加到我的stage中,使用actionscript3动态创建它

如果我将对象拖动到舞台上,它将显示为预期的高度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 ); 
我希望它与第一个对象对齐,接触其下边缘,但它显示在第一个对象的下方(debug reports rect1.height实际设置为106.5!)

如果我硬编码rect2.y=33,它会像预期的那样出现,接触到第一个对象

这里究竟发生了什么事。我已经在舞台上看了scaleY,但它只是设置为1。我还查看了stage.height(273.9)和stage.stageHeight(768)以查看缩放是否存在相关性,但这也不起作用

任何帮助都将不胜感激。这感觉很明显我错过了什么,但我用谷歌搜索到了自己的死亡,却没有得到任何快乐

问候
尼尔

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

听起来可能是注册点问题

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

如果双击库中的符号,您将看到符号的内容以及表示注册点的小十字线。通常,您希望将内容对齐在该注册点的中心或内容的左上角

我猜这可能是你的问题,但如果没有看到你的内容,我不能肯定


该配准点也用于旋转。如果要围绕对象的中心点旋转对象,则需要确保注册点位于对象的中心。

事实上,OP在计算矩形的高度时忘记了计算矩形的位置。如果
rect1
是40像素高,
rect2
将被放置在
y=40
上,即使
rect1
被放置在
(0,0)
上。因此可能是在.NET
高度
是y和高度的总和,这是不实际的,可能不是真的。y是对象的位置,高度是对象的高度。这是非常清楚的。为什么高度是位置加上物体的高度???我完全同意你的看法。让我们等待作者的回应。我明白你的意思,但由于rect1.Y为零,它不会影响结果。正如上面所评论的,我认为舞台上的其他东西正在影响着一切,因为把它剥离到最基本的部分使它按预期工作(我应该先尝试一下!哦!)你是否排除了矩形电影剪辑中有一些“看不见”或非常小的图形会导致它高于预期的情况?如果清除关键帧并重新创建矩形,还会得到相同的结果吗?谢谢Strille。你发现了什么。当我将代码剥离回一个按钮,而舞台上没有其他任何东西时,它开始按预期工作。我会重新开始建造它,看看它在哪里断裂。非常感谢你的建议!!:-D