as3.0 怎么用按钮控制 删除选中的影片剪辑,影片剪辑是复制出来的。

发布网友 发布时间:2天前

我来回答

3个回答

热心网友 时间:1天前

你这段代码有些零乱,flag是干嘛哒?
我可以给你一个思路。

假设你当前已经在场景上面创建了若干影片,(并且parent==stage,当然也可以是其他,不过你需要修改我下面出现的代码)并按照一定的序列排列好。
//实例化数组
var arr:Array=new Array();
//创建一个监听。
stage.addEventListener(MouseEvent.CLICK,jr);
function jr(e:MouseEvent):void
{
for(var i:int=0;i<arr.length;i++){
//在这里你得注意一个问题,由于我是直接对舞台进行监听,所以,你放置在舞台上的一切都会
//被移除掉,你可以将stage换成其他sprite,然后监听sprite的单击事件。
if(arr[i]==e.target){
arr.splice(arr[i],1);//如果数组中存在这个影片,则从数组中删除
//也就是说这个影片剪辑被你点击了偶数次,另外,你可以获取元件矩形并绘制和删除边框。
//代码我就不贴出来了。
return;
}
arr.push(e.target);//否则将这个影片加入到数组中去
//自己想一下原因吧,这样的解释应该清楚了吧
}
}
//假设你有一个删除按钮,按钮实例名为“btn”。当点击删除后,存在数组中的影片全部删除掉。
btn.addEventListener(MouseEvent.CLICK,clea);
function clea(e:MouseEvent):void
{
for(var j:int=0;j<arr.length;j++){

stage.removeChildAt(stage.getChildIndex(arr[j]));//删除数组指向的影片
arr.shift();//删除arr的第一个元素
}
}

以上是随场编辑的,没有经过测试,如果有问题就追问吧。另外,你也可以为一次只允许删除一个元件。只需要每次点击的时候删除一个,增加一个数组就行了。

热心网友 时间:1天前

老兄你得把这些复制的MC都放进数组里才好操作:
import flash.display.MovieClip;
var shuzu:Array = new Array();
for(var i:uint=0;i<"复制MC的个数";i++){
shuzu[i] = "复制的MC";
shuzu[i].addEventListener(MouseEvent.CLICK,cl);
}
function cl(e:MouseEvent):void{
var cle_mc:MovieClip = e.target as MovieClip;
removeChild(cle_mc);
}

热心网友 时间:1天前

removeChild(mymc0)

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com