1

我正在放大和缩小电影剪辑。我通过 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));
    }
};
}
4

2 回答 2

3

Actionscript 2 中没有 .height 属性,正如您指出它的 ._height 一样,您很可能拥有 Actionscript 3 的代码。

作为旁注,AS3 中的所有旧变量都是 _visible、_width、_height 等。这些已更改为可见、宽度、高度等。

希望这可以帮助。

编辑:

如果您使用_xscaleor_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);

有一篇关于 using - Matrixin actionscript 2 by senoculor的好文章

我真的希望这对您有所帮助,如果确实如此,请将答案标记为正确。

于 2012-05-19T15:53:30.943 回答
0

我只是想用一些有用的信息来更新这篇文章。两个版本的高度都将突出显示为蓝色,因为它们都作为关键字存在。大多数对象使用 ._height 属性,但 Stage 类使用 .height。这有点令人困惑,但却是与 AS2 不一致的完美示例。

Stage.height
MovieClip._height
于 2016-05-20T17:56:55.347 回答