试图在鼠标悬停时删除孩子
Posted
技术标签:
【中文标题】试图在鼠标悬停时删除孩子【英文标题】: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)
【问题讨论】:
【参考方案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 是您在其上添加事件侦听器的圆圈。所以它永远是鼠标下的圆圈。如果它回答了您的问题,请接受答案。谢谢!以上是关于试图在鼠标悬停时删除孩子的主要内容,如果未能解决你的问题,请参考以下文章