我有一个在时间轴中手动缩放的影片剪辑。
我现在正在尝试使用动作脚本获取宽度和高度,以便我可以将另一个电影剪辑加载到其中并使其大小相同。
但是,当我执行以下代码时,我无法正确定位它,因为比例是 WIDTH 并且 HEIGHT 显示原始大小而不显示缩放大小坐标。因此,当我将新剪辑放入其中时,我无法使其与重新缩放的剪辑具有相同的宽度和高度;
ScaledMC.addChild(myMC);
myMC.x = - ScaledMC.width /2; //Because the MC registration is in the center
解决方法可能是一些代码来检测剪辑边界的 x 和 y 位置以及它们在舞台上的位置。
谢谢你的时间。
更新:2012 年 4 月 25 日
我正在发布我正在尝试做的事情的完整代码,包括 FLA。当您单击女孩时,我需要她加载到另一个电影剪辑中。然而,影片剪辑是按比例缩放的,所以当她加载时,她的位置会突然改变。我需要它看起来像她没有移动并留在同一个地方。
import flash.geom.Rectangle;
var Girlx = Girl.x;
var Girly = Girl.y;
var b:Rectangle;
b = Room.ChalkBoard.getBounds(this);
trace(b);
Room.ChalkBoard.addEventListener(MouseEvent.MOUSE_DOWN, fl_ClickToDrag);
function fl_ClickToDrag(event:MouseEvent):void
{
Room.ChalkBoard.startDrag();
}
stage.addEventListener(MouseEvent.MOUSE_UP, fl_ReleaseToDrop);
function fl_ReleaseToDrop(event:MouseEvent):void
{
Room.ChalkBoard.stopDrag();
b = Room.ChalkBoard.getBounds(this);
}
Girl.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);
function fl_MouseClickHandler(event:MouseEvent):void
{
//Room.ChalkBoard.scaleX = 1;
// Room.ChalkBoard.scaleY = 1;
Room.ChalkBoard.addChild(Girl);
// I NEED TO KNOW HOW TO SCALE GIRL BACK TO SAME SIZE
// EXAMPLE:
Girl.scaleY = 1 + Room.ChalkBoard.scaleY;
Girl.scaleX = 1 + Room.ChalkBoard.scaleX;
Girl.x = Girlx - b.x; /// This formula works if Room is at scaleX is 1;
Girl.y = Girly - b.y; /// This formula works if Room is at scaleY is 1;
}