为了让这段代码在AS2中运行,需要对其中一些语法进行修改。以下是AS2版本的代码:
var copiedClip:MovieClip = null; // 用于存储被复制的影片剪辑
var originalClip:MovieClip = null; // 用于存储原始影片剪辑
// 循环遍历9个影片剪辑
for (var i = 1; i <= 9; i++) {
var clip:MovieClip = this["tu" + i];
// 设置鼠标左键按下事件处理程序
clip.onPress = function() {
if (copiedClip == null) {
originalClip = this;
copiedClip = this.duplicateMovieClip("copy", this.getNextHighestDepth()); // 复制当前影片剪辑
copiedClip.startDrag(); // 开始拖动
// 设置全局onMouseMove事件处理程序,跟随鼠标移动
_root.onMouseMove = function() {
if (copiedClip != null) {
copiedClip._x = _root._xmouse;
copiedClip._y = _root._ymouse;
}
};
}
};
// 设置鼠标右键按下事件处理程序
clip.onMouseDown = function() {
if (copiedClip != null && this != originalClip) { // 如果当前有已复制的影片剪辑且不是原始影片剪辑
copiedClip.removeMovieClip(); // 删除已复制的影片剪辑
copiedClip = null;
} else if (copiedClip == null && this == originalClip) { // 如果当前没有已复制的影片剪辑且是原始影片剪辑
originalClip.removeMovieClip(); // 删除原始影片剪辑
}
};
}
// 设置全局onMouseUp事件处理程序,停止拖动并放置复制后的图片
_global.onMouseUp = function() {
if (copiedClip != null) {
copiedClip.stopDrag(); // 停止拖动
// 恢复全局onMouseMove事件处理程序为null
_root.onMouseMove = null;
// 将复制后的图片放置在当前鼠标位置,并清除对被复制的影片剪辑和原始影片剪辑的引用
copiedClip._x = _root._xmouse;
copiedClip._y = _root._ymouse;
copiedClip.removeMovieClip();
originalClip = null;
}
};
我已经修改了语法错误和一些AS3特有的方法。请尝试将这段代码放入一个AS2 Flash文件中运行,它应该能够正常工作。注意,如果你需要在ActionScript 3.0项目中使用这段代码,则需要进行更多修改。