我有这段代码让玩家在完成拖放时在舞台上出现一条消息。我希望在下一帧单击按钮时删除这个精灵。有人可以帮助我的代码?移除舞台上的精灵as3
stage.addEventListener(Event.ENTER_FRAME, EntFrame);
function EntFrame (e:Event):void
{
if (CntP1+CntP2+CntP3+CntP4+CntP5+CntP6+CntP7+CntP8 == 40)
{
var w:int = 400, h:int = 200;
var win:Sprite = new Sprite();
win.name = "Mywin";
addChild(win);
// draw rounded rect with subtle vertical linear gradient fill and blue stroke
win.graphics.lineStyle(4,0x0077ff);
var mat:Matrix = new Matrix();
mat.createGradientBox(w, h, 90 * (Math.PI/180));
win.graphics.beginGradientFill(GradientType.LINEAR,[0xffffff,0xeeeeee],[1.00,1.00],[0,255],mat);
win.graphics.drawRoundRect(0,0,w,h,15,15);
// show center "YOU WIN!" text
var tf:TextField = new TextField();
tf.autoSize = TextFieldAutoSize.LEFT;
tf.antiAliasType = AntiAliasType.ADVANCED;
tf.defaultTextFormat = new TextFormat("Arial, Verdana",36,0x454545,true);
tf.text = "Κέρδισες!";
tf.selectable = false;
win.addChild(tf);
tf.x = w/2 - tf.width/2;
tf.y = h/2 - tf.height/2;
// add a drop shadow
var dropShadow:DropShadowFilter = new DropShadowFilter(3,45,0,.35,8,8,1,3);
win.filters = [dropShadow];
// center the graphic
win.x = stage.stageWidth/2 - win.width/2;
win.y = stage.stageHeight/2 - win.height/2;
}
}
你可能会有一堆他们要删除,因为你在每一帧添加一个新的。问题是你没有提及它们的任何一个,所以要想让它们调用removeChild()是很困难的。老实说,整个功能需要重写,但是在你的问题中没有足够的信息来提供改进它的最佳方法的建议,以满足任何总体目标。 –
我在舞台上有8个电影剪辑。玩家点击它们,它们变得不可见,并且在不同位置的8个新电影剪辑变得可见。而已。当这个过程完成后,我希望文本消息出现,当玩家移动到下一个游戏时,我想让这个消息消失。我是新来的闪光灯,我是自学成才,我有很多困难。任何帮助表示赞赏。 – Marianna