好的,以下是可以实现删除图片功能的代码(AS2):
首先,你需要有一个包含所有图片对象的数组 imageArray
。在这个数组中添加每一个新创建的图片对象。
var imageArray:Array = [];
for (var i:Number = 0; i < 10; i++) {
var img_mc:MovieClip = attachMovie("Image", "img"+i, getNextHighestDepth()); // 这里使用自己定义的 Image 类来创建新图像
img_mc._x = Math.random() * Stage.width;
img_mc._y = Math.random() * Stage.height;
imageArray.push(img_mc); // 将新创建的图像对象添加到数组中
img_mc.onPress = function() {
if (Key.isDown(Key.CONTROL)) { // 判断是否按下 Ctrl 键
var targetImg:MovieClip = this;
var index:Number = imageArray.indexOf(targetImg);
removeMovieClip(targetImg);
imageArray.splice(index, 1); // 从数组中删除当前图像对象
}
};
}
上述代码会生成10个随机位置的 Image
对象,并将它们添加到舞台上。当用户按下并拖动其中任意一个图像时,会判断是否同时按下了 Ctrl 键。如果是,则从舞台上移除该图像,并从 imageArray
数组中删除该图像。
需要注意的是,在 AS2 中不能直接使用 removeChild()
方法来删除 MovieClip 对象。正确方式是使用 removeMovieClip()
方法来将其从父容器中移除。此外,AS2 中也没有 MouseEvent
类,而是使用 MovieClip 上的 onPress
事件来监听鼠标点击事件。同时按下 Ctrl 键可以通过 Key.isDown(Key.CONTROL)
来判断。