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){
}
答案 0 :(得分:0)
更改x
和y
时,您无法更新width
和height
吗?
blob1.x += deltaWidth / 2
blob1.y += deltaHeight / 2
您将宽度和高度增加5,因此deltaWidth = 5
和deltaHeight = 5
。
注意:deltaWidth / 2
不能平等分配,因此您会有轻微的转变。我建议您使用deltaWidth = 6
和deltaHeight = 6
或类似内容。
答案 1 :(得分:0)
GreenSock有一个很棒的图书馆可以做到这一点; TransformManager。 http://www.greensock.com/transformmanageras3/
答案 2 :(得分:0)
我的解决方案到底有点奇怪。我把形状分成4个四分之一,然后将物体放在同一个地方然后旋转它们(在从左上角旋转时,4个四分之一形成一个完整的形状,每个四分之一的左上角)将它们重新连接到闪光灯中角落在“物体”的中心)。然后我立刻将它们全部调整大小以正确地完成它。
奇怪的是,右上角和左下角需要与其他两个角不同的数学。这没有任何意义。 2个角需要调整宽度和高度。另外两个角需要调整宽度。很奇怪,但工作:/