【问题标题】:Trying to remove child on mouseover试图在鼠标悬停时删除孩子
【发布时间】:2015-10-24 13:02:30
【问题描述】:

我对编程并不陌生,但今年夏天我决定学习 Flash 以获得乐趣。我有一个程序将 Circles 作为孩子打印,我想要它,所以当用户将鼠标悬停在某个圆圈上时,它会删除那个孩子。伪代码,以防你不明白我在说什么:

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)
        }
}

【问题讨论】:

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


    【解决方案1】:

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

    您需要为每个圈子添加一个 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);
    }
    

    希望这能回答您的问题。如果确实如此,请接受答案,或者如果您需要更多信息,请告诉我。谢谢。

    【讨论】:

    • 非常感谢!刚改了标题,没注意。是否有检测到哪个孩子被移除,是移除最近的孩子还是鼠标悬停的孩子?
    • 它将删除您悬停或单击的孩子。它的工作方式是 event.currentTarget 是您在其上添加事件侦听器的圆圈。所以它永远是鼠标下的圆圈。如果它回答了您的问题,请接受答案。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    相关资源
    最近更新 更多