尝试在鼠标悬停时删除 child
Trying to remove child on mouseover
我不是编程新手,但我决定在今年夏天学习 Flash 来找乐子。我有一个程序将 Circles 打印为 children,我想要它,所以当用户将鼠标悬停在某个圆圈上时,它将删除 child。伪代码以防你不明白我在说什么:
if ( mouse.x = onCircle && mouse.y = onCircle){
removeChild(thatCircle);
}
问题是我不知道如何找到特定的 child 是什么以及如何删除它。
到目前为止,这是我的代码:
//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)
}
}
编辑:请更正您的标题或描述。标题说鼠标点击,描述说悬停。这些是不同的东西。
您需要为每个圆添加一个 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);
}
希望这能回答您的问题。如果是,请接受答案,或者如果您需要更多信息,请告诉我。谢谢。
我不是编程新手,但我决定在今年夏天学习 Flash 来找乐子。我有一个程序将 Circles 打印为 children,我想要它,所以当用户将鼠标悬停在某个圆圈上时,它将删除 child。伪代码以防你不明白我在说什么:
if ( mouse.x = onCircle && mouse.y = onCircle){
removeChild(thatCircle);
}
问题是我不知道如何找到特定的 child 是什么以及如何删除它。
到目前为止,这是我的代码:
//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)
}
}
编辑:请更正您的标题或描述。标题说鼠标点击,描述说悬停。这些是不同的东西。
您需要为每个圆添加一个 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);
}
希望这能回答您的问题。如果是,请接受答案,或者如果您需要更多信息,请告诉我。谢谢。