如何调整在动作脚本中创建的对象的大小,原点保持在中心位置

时间:2014-05-08 18:32:52

标签: actionscript resize

width实际上,我使用actionscript在Flash中创建对象。我目前有一个问题,我在动作脚本中调整对象的大小,但由于参考点似乎是左上角,缩小时的对象似乎也向屏幕的左上方移动。

有没有办法使用代码将对象的原点编码到对象的中心,或者让它在没有看似移动的情况下调整大小?

我创建和调整对象大小的代码是这样的(它会增长和缩小,但在我继续之前,我只是尝试解决这个问题):

var blob1:Loader = new Loader();
blob1.x = 1000;
blob1.y = 450;
blob1.load(new URLRequest("blob1.png"));
addChild(blob1);

blob1.addEventListener(Event.ENTER_FRAME, blobTween);
function blobTween(event:Event)
{
    var size = 0;
    if (size == 0){
            blob1.width += 5;
            blob1.height += 5;


    }else if (size == 1){

    }

3 个答案:

答案 0 :(得分:0)

更改xy时,您无法更新widthheight吗?

blob1.x += deltaWidth / 2
blob1.y += deltaHeight / 2

您将宽度和高度增加5,因此deltaWidth = 5deltaHeight = 5

注意:deltaWidth / 2不能平等分配,因此您会有轻微的转变。我建议您使用deltaWidth = 6deltaHeight = 6或类似内容。

答案 1 :(得分:0)

GreenSock有一个很棒的图书馆可以做到这一点; TransformManager。 http://www.greensock.com/transformmanageras3/

答案 2 :(得分:0)

我的解决方案到底有点奇怪。我把形状分成4个四分之一,然后将物体放在同一个地方然后旋转它们(在从左上角旋转时,4个四分之一形成一个完整的形状,每个四分之一的左上角)将它们重新连接到闪光灯中角落在“物体”的中心)。然后我立刻将它们全部调整大小以正确地完成它。

奇怪的是,右上角和左下角需要与其他两个角不同的数学。这没有任何意义。 2个角需要调整宽度和高度。另外两个角需要调整宽度。很奇怪,但工作:/