中心电影剪辑点

时间:2010-03-03 21:46:11

标签: flash actionscript actionscript-2

我正在动态地将影片剪辑(SWFS)加载到附加剪辑中(来自库)。加载的电影并非都具有中心点,这意味着它们的注册点不是直接位于其中心。当我将它们加载到附加的剪辑中时,这会产生问题,因为它们不会在附加的剪辑上居中,这是我希望它们做的。有没有办法根据宽度和高度而不是注册点来设置动画片中心?

提前致谢!

3 个答案:

答案 0 :(得分:2)

使用getBounds。

var bounds:Rectangle = loadedClip.getBounds(loadedClip);
对于左上角对齐的影片剪辑,

bounds.x和bounds.y将为{0,0}。任何其他值都会告诉你偏离中心的程度。

如果加载的剪辑是loadedClip且其父级是containerClip,则以下内容将起作用。

loadedClip.x = (container.width - loadedClip.width)/2 - loadedClip.getBounds(loadedClip).x;
loadedClip.y = (container.height - loadedClip.height)/2 - loadedClip.getBounds(loadedClip).y;

如果缩放中涉及的剪辑,则必须按如下方式调整缩放:

loadedClip.x = (container.width - loadedClip.width) / 2 - (loadedClip.getBounds(loadedClip).x * loadedClip.scaleX);
loadedClip.y = (container.height - loadedClip.height) / 2 - (loadedClip.getBounds(loadedClip).y * loadedClip.scaleY);

我希望这会有所帮助。

答案 1 :(得分:0)

您可以使用此类更改MC的注册点以使其居中: Dynamic MovieClip Registration with AS2

答案 2 :(得分:0)

当加载完成后,您可以获取已加载电影的宽度和高度,并调整x&相应的位置:

function onLoadComplete(){
 loadedmc._x = loadedmc._width/2 * -1;
 loadedmc._y = loadedmc._height/2 * -1;
}