2011-01-13 26 views
0

OK,所以这里是我的代码闪光:调整此代码,以保持复制的影片剪辑

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

用户可以在第一拖动影片剪辑。释放时,会运行duplicateMovieClip命令,将新的哈姆影片剪辑留在第一个拖动到的位置。

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

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

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

回答

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++; 
} 

载入剪辑总是替换以前在该深度加载的剪辑。

编辑和测试:)

+0

没有任何工作....谢谢你当然 – 2011-01-13 22:08:50

0

德棉的答案是正确的,但只有当你的X计数在舞台上影片剪辑的总数相匹配。此外,所有剪辑都设置为相同的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++; 
}