我正在为影片剪辑进行放大和缩小。我通过mc.height获得原始高度。缩放动画片段后,我需要增加影片剪辑的高度。所以我使用了mc._height属性。 但它提供了更高的值,它不是原始值。但它也会在价值越来越低的情况下改变。
请帮助我。
感谢。
嗨,我正在做缩放概念。在缩放动画片段宽度工作正常。但是在补间图像宽度和宽度的情况下。身高异常增加。是什么原因我没有找到。请帮助我。
this.onMouseMove = function() {
constrainedMove(bg_mc, 4, 1);
};
function constrainedMove(target:MovieClip, speed:Number, dir:Number) {
var mousePercent:Number = _xmouse/Stage.width;
var mSpeed:Number;
if (dir == 1) {
mSpeed = 1-mousePercent;
} else {
mSpeed = mousePercent;
}
target.destX = Math.round(-((target._width-Stage.width)*mSpeed));
target.onEnterFrame = function() {
if (target._x == target.destX) {
delete target.onEnterFrame;
}
else if (target._x>target.destX) {
target._x -= Math.ceil((target._x-target.destX)*(speed/100));
}
else if (target._x<target.destX) {
target._x += Math.ceil((target.destX-target._x)*(speed/100));
}
};
}
答案 0 :(得分:3)
在Actionscript 2中没有.height属性,正如你指出它的._height,它很可能你有ActionScript 3的代码。
作为旁注,AS3中的所有旧变量都是_visible,_width,_height等。这些变量被改为可见,宽度,高度等。
希望这有帮助。
修改强>
如果您使用_xscale
或_yscale
,则可能无法获得预期的宽度和高度。以下是使用Matrix
的示例。首先在舞台上创建一个框,并给出实例名称框,使其大小为100x100:
import flash.geom.Matrix;
// will trace 100
trace(box._width);
// will trace 100
trace(box._height);
// get the current matrix and scale it by factor of two - doubling it
var matrix = box.transform.matrix;
matrix.scale(2,2);
// apply the matrix back to the movieclip
box.transform.matrix = matrix;
// will trace 200
trace(box._width);
// will trace 200
trace(box._height);
有一篇关于使用 - Matrix
in actionscript 2 by senoculor
我真的希望这可以帮助你,如果确实如此,那么请将答案标记为正确。
答案 1 :(得分:0)
我只是想用一些有用的信息来更新这篇文章。两个版本的高度都将突出显示为蓝色,因为它们都作为关键字存在。大多数对象使用._height属性,但Stage类使用.height。 它有点令人困惑,但却是与AS2不一致的完美例子。
Stage.height
MovieClip._height