Flash:调整此代码以保留重复的影片剪辑

时间:2011-01-13 21:49:04

标签: flash actionscript adobe

好的,所以这是我的代码

ham_mc.onPress=function(){
startDrag(this);
}
ham_mc.onRelease=ham_mc.onReleaseOutside=function(){
stopDrag();
_root.ham_mc.duplicateMovieClip("ham_mc" + "x",2);
x++;
}

用户可以先拖动影片剪辑。释放后,duplicateMovieClip命令将运行,将新的ham影片剪辑保留在第一个被拖动到的位置。

问题:当我再次单击并拖动第一个火腿电影时,再次运行duplicateMovieClip但是替换上一个生成的影片剪辑。

我添加了x和x ++,试图每次都为影片剪辑复制一个不同的名称,但这并没有解决它。

如何更改此代码,以便每次都创建一个新的ham_mc,而不是覆盖旧的。我很累,对于糟糕的解释感到抱歉!

2 个答案:

答案 0 :(得分:0)

这不是名字 - 它是你在(2)加载它的深度。尝试用x替换2,它应该适合你:

ham_mc.onPress=function(){
startDrag(this);
}
ham_mc.onRelease=ham_mc.onReleaseOutside=function(){
stopDrag();
_root.ham_mc.duplicateMovieClip("ham_mc" + x ,x);
_root['ham_mc' + x]._x = 50;
_root['ham_mc' + x]._y = 50;
x++;
}

在相同深度处加载剪辑将始终替换之前在该深度处加载的剪辑。

编辑并测试:)

答案 1 :(得分:0)

Demian的答案是正确的,但前提是您的x计数与舞台上的MovieClip总数相匹配。此外,所有剪辑都设置为相同的X和Y位置。这应该更好:

ham_mc.onPress=function(){
    startDrag(this);
}
ham_mc.onRelease=ham_mc.onReleaseOutside=function(){
    stopDrag();
    _root.ham_mc.duplicateMovieClip("ham_mc" + x ,_root.getNextHighestDepth());
    _root['ham_mc' + x]._x = _root._xmouse;
    _root['ham_mc' + x]._y = _root._ymouse;
    x++;
}