AS3 将 MovieClip 居中
AS3 Center a MovieClip
我有一个宽度为 1920 的舞台,space 我试图将我的 MovieClip 居中的宽度是 1520。我的 MovieClip 根据用户选择而变化,所以它可能是 1023.9 或 396.8 我正在尝试将此影片剪辑置于我的 1520 位置的中心。我该怎么做?
我试过以下方法:
floorplanMCAG.x = 1520 - floorplanMCAG.width;
但是我的1023.9 MovieClip 偏左太多了,我的396.8 MovieClip 偏右了一点
我的 MovieClip 是这样创建的:
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadFloorplanAG);
loader.load(new URLRequest("images/" + modelAG.floorplan));
var floorplanMCAG:MovieClip = new MovieClip();
function loadFloorplanAG(e:Event):void
{
floorplanMCAG.addChild(loader);
floorplanMCAG.height = 468;
floorplanMCAG.y = 570;
floorplanMCAG.scaleX = floorplanMCAG.scaleY;
floorplanMCAG.x = stage.stageWidth / 2;
trace(floorplanMCAG.width);
map_boundsFLRPLSAG = new Rectangle(520,570,floorplanMCAG.width,floorplanMCAG.height) // this defines the area in which the map should fit
min_zoomFLRPLSAG = floorplanMCAG.scaleX;
//Zoom and Drag Event Listeners
stage.addEventListener(TouchEvent.TOUCH_BEGIN, touchBeginFLRPLSAG)
stage.addEventListener(TouchEvent.TOUCH_MOVE, touchMovedFLRPLSAG)
stage.addEventListener(TouchEvent.TOUCH_END, touchEndFLRPLSAG)
modelInformationAG.addChild(floorplanMCAG);
modelInformationAG.setChildIndex(floorplanMCAG, 0);
}
这里是modelInformationAG
var modelInformationAG:MovieClip = new MovieClip();
modelInformationAG.graphics.drawRect(0, 0, 1920, 1080);
使您的影片剪辑居中的公式取决于影片剪辑的注册点设置位置。理论上注册点可以在任何地方,但这里有两种最常见的情况:
如果设置在mc的左上角:
floorplanMCAG.x = (stage.stageWidth - floorplanMCAG.width) / 2;
如果注册点在中心:
floorplanMCAG.x = stage.stageWidth / 2;
编辑:
好的,我想这应该使您的影片剪辑居中:
floorplanMCAG.x = (modelInformationAG.width - floorplanMCAG.width) / 2;
我有一个宽度为 1920 的舞台,space 我试图将我的 MovieClip 居中的宽度是 1520。我的 MovieClip 根据用户选择而变化,所以它可能是 1023.9 或 396.8 我正在尝试将此影片剪辑置于我的 1520 位置的中心。我该怎么做?
我试过以下方法:
floorplanMCAG.x = 1520 - floorplanMCAG.width;
但是我的1023.9 MovieClip 偏左太多了,我的396.8 MovieClip 偏右了一点
我的 MovieClip 是这样创建的:
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadFloorplanAG);
loader.load(new URLRequest("images/" + modelAG.floorplan));
var floorplanMCAG:MovieClip = new MovieClip();
function loadFloorplanAG(e:Event):void
{
floorplanMCAG.addChild(loader);
floorplanMCAG.height = 468;
floorplanMCAG.y = 570;
floorplanMCAG.scaleX = floorplanMCAG.scaleY;
floorplanMCAG.x = stage.stageWidth / 2;
trace(floorplanMCAG.width);
map_boundsFLRPLSAG = new Rectangle(520,570,floorplanMCAG.width,floorplanMCAG.height) // this defines the area in which the map should fit
min_zoomFLRPLSAG = floorplanMCAG.scaleX;
//Zoom and Drag Event Listeners
stage.addEventListener(TouchEvent.TOUCH_BEGIN, touchBeginFLRPLSAG)
stage.addEventListener(TouchEvent.TOUCH_MOVE, touchMovedFLRPLSAG)
stage.addEventListener(TouchEvent.TOUCH_END, touchEndFLRPLSAG)
modelInformationAG.addChild(floorplanMCAG);
modelInformationAG.setChildIndex(floorplanMCAG, 0);
}
这里是modelInformationAG
var modelInformationAG:MovieClip = new MovieClip();
modelInformationAG.graphics.drawRect(0, 0, 1920, 1080);
使您的影片剪辑居中的公式取决于影片剪辑的注册点设置位置。理论上注册点可以在任何地方,但这里有两种最常见的情况:
如果设置在mc的左上角:
floorplanMCAG.x = (stage.stageWidth - floorplanMCAG.width) / 2;
如果注册点在中心:
floorplanMCAG.x = stage.stageWidth / 2;
编辑:
好的,我想这应该使您的影片剪辑居中:
floorplanMCAG.x = (modelInformationAG.width - floorplanMCAG.width) / 2;