2013-05-06 55 views
1

我对Actionscript和Flash比较陌生,但在Microsoft环境中拥有丰富的经验,所以我试图做的只是在.NET中工作, Flash有着根本性的不同,我恐怕没有得到它。放置在舞台上时出现ActionScript对象大小问题

我遇到的问题是,我想补充库对象(在这种情况下,一个简单的矩形)到我的舞台,创造它使用ActionScript动态3.

如果我拖动对象到阶段,它显示为与33px和宽度152px

的高度预期如果我实例是使用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的高度实际上设置为106.5! )

如果我硬编码rect2.y = 33,则显示为预期,触及第一目标

究竟是什么发生在这里。我已经看过stageY的scaleY,但它已经设置为1.我还看过stage.height(273.9)和stage.stageHeight(768),看看缩放中是否存在相关性,不管工作。

任何帮助将不胜感激。这感觉就像我失踪的事情一样明显,但我已经把自己找到了死亡,并没有得到任何喜悦。

问候 尼尔

+2

你是否排除了在矩形MovieClip中存在某些“不可见”或非常小的图形会导致它比预期更高的情况?如果清除关键帧并再次重新创建矩形,那么您仍然会得到相同的结果吗? – Strille 2013-05-06 11:22:59

+0

谢谢Strille。你正在那里。当我将代码剥离回舞台上没有其他任何东西的单个按钮时,它开始按预期工作。我会再次开始构建它并查看它发生了什么。非常感谢您的建议!:-D – 2013-05-07 08:13:06

回答

1

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

+1

事实上,OP在计算高度时忘记了计算矩形的位置。如果'rect1'高40像素,即使'rect1'放在'(0,0)'上,'rect2'也会放在'y = 40'上。 – Joetjah 2013-05-06 11:11:22

+0

所以可能在.net高度是y和高度的总和 – Cherniv 2013-05-06 11:15:06

+0

这将是不切实际的,可能是不正确的。 y是一个对象的位置,height是一个对象的高度。这很清楚。为什么高度是位置加上对象的高度? – Joetjah 2013-05-06 11:20:48

1

听起来像它可能是一个注册点的问题。

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

如果您双击图库中的符号,就会看到符号的内容,您将看到代表注册点的小十字。通常,您希望将内容与注册点或内容的左上角对齐。

我的猜测是,这可能是你的问题,但不能确定没有看到你的内容。

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

相关问题