-1
stop();
speed = 10;
initial_width = 75;
target_width = 450;
sp = rect1._x;
this.createEmptyMovieClip("emptymc", 0);
emptymc.onEnterFrame = function() { 
for (i=1; i<=6; i++) {
    if (_root.hit.hitTest(_root._xmouse, _root._ymouse, true)) {
        if (_root["rect"+i].hitTest(_root._xmouse, _root._ymouse, true)) {
            new_x = (_root.sp-(75*(i-1)))-rect1._x;
            rect1._x += new_x/speed;
            n_width = target_width-_root["rect"+i]._width;
            _root["rect"+i]._width += n_width/speed;
        } else {
            n_width2 = initial_width-_root["rect"+i]._width;
            _root["rect"+i]._width += n_width2/speed;
        }
    } else {
        new_x = _root.sp-rect1._x;
        rect1._x += new_x/(speed+50);
        n_width2 = initial_width-_root["rect"+i]._width;
        _root["rect"+i]._width += n_width2/(speed-1);
    }
    _root["rect"+(i+1)]._x = _root["rect"+i]._x+_root["rect"+i]._width;
    _root["movie"+i]._x = _root["rect"+i]._x-1;
    }
};

谢谢大家,我明白了!我尝试翻译为 AS3,似乎一切都很好。仍然有一些小错误,但我会尽力找到它,对于给您带来的不便,我深表歉意。:(

再次感谢大家。:)。

4

1 回答 1

1

我的代码不完整,但可以帮助你。您需要将名为“rect”的影片剪辑放在名为“rects”的数组中,并将名为movie 的影片剪辑放在名为movie 的数组中。

带有前缀“_root”的变量和影片剪辑必须声明为全局。

stop();
speed = 10;
initial_width = 75;
target_width = 450;
sp = rect1._x;

emptymc = new MovieClip();
emptymc.addEventListener (Event.ENTER_FRAME , onEnterFrame);

function onEnterFrame (e:Event):void{

    for (var i:int=1; i<=6; i++) {
        if (hit.hitTestPoint(stage.mouseX, stage.mouseY,true)) {

            if (rect.hitTestPoint(stage.mouseX, stage.mouseY, true)) {
                new_x = (sp-(75*(i-1)))-rect1._x;
                rect1.x += new_x/speed;
                n_width = target_width-rects[i].width;
                rects[i]._width += n_width/speed;
            } else {
                n_width2 = initial_width-rects[i].width;
                rects[i].width += n_width2/speed;
            }

        } else {

            new_x =sp-rect1.x;
            rect1._x += new_x/(speed+50);
            n_width2 = initial_width-rects[i].width;
            rects[i].width += n_width2/(speed-1);
        }

        rects[(i+1)].x = rects[i].x+rects[i].width;
        movies[i].x = rects[i].x-1;
    }

}
于 2013-07-24T18:13:15.130 回答