发新话题
打印

[求救] 为何没有按照要求删除MC

为何没有按照要求删除MC

我要求是当_y<150才remove MC,但是他随即地在刚开始就帮我删除了部分,不解。。。这是为什么?可以的话请高手帮忙简化下AS,我觉得应该简化的

stop();
function mov(mc:MovieClip) {
mc.onEnterFrame = function() {
  mc._y--;
};
}
var choose:Number;
var depthup = 1;
var depthdown = 1;
var depthleft = 1;
var depthright = 1;
var killup:Number = 1;
var killdown:Number = 1;
var killrihgt:Number = 1;
var killleft:Number = 1;
onEnterFrame = function () {
choose = random(50);
if (choose == 1) {
  dup_up();
}
if (choose == 2) {
  dup_down();
}
if (choose == 3) {
  dup_left();
}
if (choose == 4) {
  dup_right();
}
if (_root["dup_u"+killup]._y<-150) {
  _root["dup_u"+killup].removeMovieClip();
  killup++;
}
if (_root["dup_d"+killdown]._y<-150) {
  _root["dup_d"+killdown].removeMovieClip();
  killdown++;
}
if (_root["dup_r"+killright]._y<-150) {
  trace(_root["dup_r"+killright]._y);
  _root["dup_r"+killright].removeMovieClip();
  killright++;
}
if (_root["dup_l"+killleft]._y<-150) {
  _root["dup_l"+killleft].removeMovieClip();
  killleft++;
}
};
function dup_up() {
dup_u.duplicateMovieClip("dup_u"+depth_up, depth_up);
mov(_root["dup_u"+depth_up]);
depth_up++;
}
function dup_down() {
dup_d.duplicateMovieClip("dup_d"+depth_dwon, depth_down);
mov(_root["dup_d"+depth_down]);
depth_down++;
}
function dup_right() {
dup_r.duplicateMovieClip("dup_r"+depthright, depthright);
mov(_root["dup_r"+depthright]);
depthright++;
}
function dup_left() {
dup_l.duplicateMovieClip("dup_l"+depthleft, depthleft);
mov(_root["dup_l"+depthleft]);
depthleft++;
}

附件

test1.fla (64 KB)

2008-6-19 19:28, 下载次数: 8

test1.swf (1.03 KB)

2008-6-19 19:28, 下载次数: 18

TOP

好长。。

TOP

为何没人帮偶

TOP

是_y<150还是_y<-150我看你的mc._y--,应该是从下往上走的,请问您的mc的初始_y坐标是多少??

TOP

y<-150     初使的MC._y大于舞台的高, 我想就算y<150也应该不会出现刚刚复制就被删除的情况的

TOP

稍微简化了下,但是问题还是没解决,急啊,高手们请帮忙看看吧
stop();
function mov(mc:MovieClip) {
mc.onEnterFrame = function() {
  mc._y--;
  if (mc._y<=150) {
   removeMovieClip(mc);
  }
};
}
var choose:Number;
var depthup = 1;
var depthdown = 1;
var depthleft = 1;
var depthright = 1;
onEnterFrame = function () {
choose = random(50);
if (choose == 1) {
  dup_up();
}
if (choose == 2) {
  dup_down();
}
if (choose == 3) {
  dup_left();
}
if (choose == 4) {
  dup_right();
}
};
function dup_up() {
dup_u.duplicateMovieClip("dup_u"+depth_up, depth_up);
mov(_root["dup_u"+depth_up]);
depth_up++;
}
function dup_down() {
dup_d.duplicateMovieClip("dup_d"+depth_dwon, depth_down);
mov(_root["dup_d"+depth_down]);
depth_down++;
}
function dup_right() {
dup_r.duplicateMovieClip("dup_r"+depthright, depthright);
mov(_root["dup_r"+depthright]);
depthright++;
}
function dup_left() {
dup_l.duplicateMovieClip("dup_l"+depthleft, depthleft);
mov(_root["dup_l"+depthleft]);
depthleft++;
}

附件

test1.fla (64 KB)

2008-6-19 21:25, 下载次数: 17

test1.swf (952 Bytes)

2008-6-19 21:25, 下载次数: 21

TOP

你的影片剪辑dup_d的坐标是多少呢??

TOP

都500多

TOP

我没有改你的代码,我把你的代码改了,是随即出现的,您可以参考一下啊!!


test1.fla (58 KB)

TOP

看来需要先研究下你的代码,偶基础差

TOP

好了,你看看吧,你应该可以看懂的,我下了,有什么咱们明天在说啊!
代码主要用的是随即产生,在一个整体的function中运行的。
和你的差不多,就是我的是随即出现的,你的是固定的,
哈哈,不说了,明天见

TOP

提示: 作者被禁止或删除 内容自动屏蔽

TOP

mc什么意思呢?

刚有人帮我~说新建个mc~可是我不知道什么意思!

TOP

MC是MovieClip的意思,影片剪辑

TOP

这是我根据你改的,但是同样发生remove错误
stop();
var min_y = 50;
var depth:Number = 1;
var speed:Number = 1;
var type:Number;
_root.onEnterFrame = function() {
type = random(50);
var mc:MovieClip = this.attachMovie("a"+type, "a"+depth, depth);
if (type == 1) {
  mc._x = 200;
  mc._y = 500;
}
if (type == 2) {
  mc._x = 0;
  mc._y = 500;
}
if (type == 3) {
  mc._x = 460;
  mc._y = 500;
}
if (type == 4) {
  mc._x = 330;
  mc._y = 500;
}
mc.onEnterFrame = function() {
  mc._y -= speed;
  if (mc._y<min_y) {
   this.removeMovieClip();
  }
};
depth++;
depth = depth%100;
};

附件

test02.swf (835 Bytes)

2008-6-20 00:11, 下载次数: 11

test02.fla (64 KB)

2008-6-20 00:11, 下载次数: 10

TOP

你可以看一下你的代码;type并没有起到限制作用,可以在加一个判断,代码如下:
stop();
var min_y = 50;
var depth:Number = 1;
var speed:Number = 1;
var type:Number;
_root.onEnterFrame = function() {
        if(ran(0,10)==5){
        type = ran(1,4);
        //type=random(50);
        trace(type);
        var mc:MovieClip = this.attachMovie("a"+type, "a"+depth, depth);
       
        if (type == 1) {
                mc._x = 200;
                mc._y = 500;
        }
        if (type == 2) {
                mc._x = 0;
                mc._y = 500;
        }
        if (type == 3) {
                mc._x = 460;
                mc._y = 500;
        }
        if (type == 4) {
                mc._x = 330;
                mc._y = 500;
        }
       
        mc.onEnterFrame = function() {
                mc._y -= speed;
                if (mc._y<min_y) {
                        this.removeMovieClip();
                }
        };
        depth++;
        if(depth>100){
                depth=1;
        }
        }
};
function ran(minnum:Number,maxnum:Number):Number{
        return(random(maxnum-minnum+1)+minnum);
}

TOP

学习学习

TOP

请问为什么你用了run()这个函数就能起到限制作用?
你的run也是取随即数,我用random也是取随即数,请问有什么不同?

TOP

高手还蛮多

TOP

突然发觉只要用到函数就不会发生错误了,我改了你取随即数的公式,同样没发生错误。
请高手说明下这是为什么?
stop();
var min_y = 50;
var depth:Number = 1;
var speed:Number = 1;
var type:Number;
_root.onEnterFrame = function() {
        if(ran(15)==5){
        type = ran(4);
              trace(type);
        var mc:MovieClip = this.attachMovie("a"+type, "a"+depth, depth);
        
        if (type == 1) {
                mc._x = 200;
                mc._y = 500;
        }
        if (type == 2) {
                mc._x = 0;
                mc._y = 500;
        }
        if (type == 3) {
                mc._x = 460;
                mc._y = 500;
        }
        if (type == 4) {
                mc._x = 330;
                mc._y = 500;
        }
        
        mc.onEnterFrame = function() {
                mc._y -= speed;
                if (mc._y<min_y) {
                        this.removeMovieClip();
                }
        };
        depth++;
        if(depth>100){
                depth=1;
        }
        }
};
function ran(num:Number):Number{
        return(random(num)+1);
}

TOP

顺便问下如何用键盘的不同键来删除type的不同类型。并且按下一次只能删除一个。即最先前的那个

TOP

if(ran(15)==5)是来判断是否载入mc
而type = ran(1,4);是判断类型的
所以呢,你的type是不能限制attachMovie的
有了if的判断,下面的随机数是无所谓了
我看看能不能+上键盘控制

TOP

先感谢了,我自己也努力ING。。。。

TOP

额。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

TOP

-。- 还是没想出来。。。。请问高手呢?

TOP

终于可以删除指定类型中的一种了,我是通过X的坐标来删除的。
我设置按UP键后删除最左边的圆。
但是还是遇到一个问题:一旦按了UP后会删除屏幕内所有的最左边的圆,我希望指删除最上方的,请问该怎么改?

附件

test03.fla (48 KB)

2008-6-20 19:28, 下载次数: 7

TOP

发新话题