试图在鼠标悬停时移除孩子

时间:2015-08-02 08:39:38

标签: actionscript-3 flash air flash-cs5 flash-cs6

我不是编程新手,但我决定今年夏天学习Flash。我有一个程序,正在打印圈子作为孩子,我想要它,所以当用户盘旋在某个圆圈时,它将删除该孩子。如果你没有得到我所说的话,那就是伪代码:

if ( mouse.x = onCircle && mouse.y = onCircle){
  removeChild(thatCircle);
}

问题是我不知道如何找到特定孩子的内容以及如何删除它。

到目前为止,这是我的代码:

//Import
import flash.utils.*;

//Vars
var circle:Shape = new Shape(); // The instance name circle is created
var alive;
alive = "true";
var challange;
challange = 1;
var ogtimer = setInterval(showCircle,1000*challange);
var circlesOnScreen: int;
circlesOnScreen = 0;
var cycles : int;
cycles = 0;
var base : int;
base = 0;

function showCircle(){

    if (circlesOnScreen < 14){
        //Variables
        var ranX:Number = Math.ceil(Math.random()*475);
        var ranY:Number = Math.ceil(Math.random()*790); 

        var circleSpriteVar:circleSprite = new circleSprite();
        addChild(circleSpriteVar);
        circleSpriteVar.x = ranX;
        circleSpriteVar.y = ranY;


        circlesOnScreen = circlesOnScreen + 1;
        cycles = cycles + 1;


        /*if (mouseisover circle){

            circle.removeChildAt(0)
        }*/


        if (cycles > 3){
            base = cycles * 1.15
            challange = base / 10
        }
    }else{
        gotoAndStop(3)
        }
}

1 个答案:

答案 0 :(得分:0)

编辑:请更正您的标题或说明。标题说鼠标点击和描述说悬停。这些是不同的东西。

您需要为每个圈子添加一个MOUSE_OVER鼠标侦听器,每次将鼠标悬停在圈子上时都会触发。然后删除鼠标所在的圆圈。这是示例代码(假设Circle是Sprite):

circle.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver,false,0,true);
protected function onMouseOver(event:MouseEvent):void
{
    var circle:Sprite = event.currentTarget as Sprite;
    circle.removeEventListener(MouseEvent.MOUSE_OVER, onMouseOver); 
    removeChild(circle);
}

希望这能回答你的问题。如果有,请接受答案,或者如果您需要更多信息,请告知我们。谢谢。