你如何删除一个点?

Posted

技术标签:

【中文标题】你如何删除一个点?【英文标题】:How do you remove a point? 【发布时间】:2013-03-11 08:00:29 【问题描述】:

如何删除一个点?我已经在网上搜索了所有内容,但是我找不到解决方案... 我的代码简单来说:

创建变量:

    var point1:Point=new Point();
    var point2:Point=new Point();
    var bullet:MovieClip=new bullet;
    var box:MovieClip=new box;

设置框和点的位置

    box.x=200;
    box.y=200;

    point2.x=200;
    point2.y=200;

设置子弹的速度:

    bullet.speedX=10;

向舞台添加监听器:

    stage.addEventListener(Event.ENTER_FRAME, inToFrame)
    function inToFrame (evt:Event)
    
        bullet.x+=bullet.speedX;
        point1.x=bullet.x;
        point1.y=bullet.y;
        if(Point.distance(point1,point2)<10)
        
            if(this.contains(bullet))
                
                    removeChild(bullet);
                    //And here I want one of the two points to be removed
                
            if(this.contains(box))
                
                    removeChild(box);
                
        
    

【问题讨论】:

Point 类不能放在舞台上(help.adobe.com/en_EN/FlashPlatform/reference/actionscript/3/…,不是 DisplayObject)。这只是抽象的结构。舞台上没有积分!那么,你想真正删除什么? 感谢@Smolniy,我只是不希望该点下次在彼此相距 10 的半径内时与另一点交互。 但是我得到了答案,谢谢@Pier! :) 【参考方案1】:

他们甚至不在舞台上,Point 不是显示对象,不能添加到舞台上。

编辑 只需将point1 设置回初始位置,例如 0,0,这样它就不会在下一次检查时进入 if 语句。或者最好在检查两点之间的距离之前检查子弹是否在舞台上

if(bullet.parent && Point.distance(point1,point2)<10)

     if(this.contains(bullet))
     
         removeChild(bullet);
         //And here I want one of the two points to be removed
     
     if(this.contains(box))
     
         removeChild(box);
     

【讨论】:

我明白了,它仍然不能解决我的问题。基本概念是,一个带有一个点的子弹向一个物体发射,该物体也带有一个点。当两个点彼此相距一定半径时,对象和点都将被破坏。我只能销毁对象,它是一个影片剪辑。 它不能解决您的问题,因为您显示的代码不足以确定您需要做什么 就像@Daniel 说的那样,您没有显示将项目符号添加到阶段的代码,您不想删除要从阶段中删除项目符号的点。如果您有 bullet,那么只需在 if 语句中执行 stage.removeChild(bullet); 好的,现在我已经更新了代码。我的问题不是我不能移除孩子,而是当我这样做时,点仍然存在,所以如果我发射新子弹,它会在接近剩余点时消失

以上是关于你如何删除一个点?的主要内容,如果未能解决你的问题,请参考以下文章

如何删除arcgis中的控制点,地理配准中自己刺的控制点

如何删除github里的项目

如何删除webQQ里已添加的应用

从 textarea 中删除点标记

如arcgis里如何删除点

如何删除远程计算机