Actionscript 3 在as3中从舞台上移除精灵
我有一个消息出现在舞台上的球员完成拖放代码。我想这个精灵被删除时,按钮是为下一帧点击。有人能帮我写代码吗Actionscript 3 在as3中从舞台上移除精灵,actionscript-3,Actionscript 3,我有一个消息出现在舞台上的球员完成拖放代码。我想这个精灵被删除时,按钮是为下一帧点击。有人能帮我写代码吗 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;
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;
}
}您的代码编写得不好,需要重新编写以确保项目的重用或可伸缩性,但这里有一个快速的解决方法 制作一个支架精灵,类似于
var messageHolder:Sprite = new Sprite();
addChild(messageHolder);
以您喜欢的任何方式将所有消息添加到该持有者。当需要擦除该持有者的内容时,请调用以下方法:
function clearHolderContents(holder:DisplayObjectContainer):void
{
if (holder.numChildren < 1)
return; // no need to continue this method if the target is empty
for (var i:int = holder.numChildren - 1; i >= 0; i--)
removeChild(holder.getChildAt(i));
}
希望有帮助 您可能需要删除整个堆栈,因为您要在每个帧上添加一个新的堆栈。问题是你没有保留他们中任何一个的参考资料,所以很难找到他们来打电话给removeChild。老实说,整个函数都需要重写,但是你的问题中没有足够的信息来提供重写的最佳方式的建议,以满足总体目标。我在舞台上有8个电影剪辑。玩家点击它们,它们就不可见了,8个不同位置的新电影剪辑也可见了。就这样。当这个过程结束时,我希望文本消息出现,当玩家移动到另一个游戏框架时,我希望此消息消失。我是新手,自学成才,有很多困难。非常感谢您的帮助。非常抱歉,我需要更多的信息来理解您的意思。我应该在哪里写这个代码?如果之后?在开始的某个地方添加一个持有者精灵-在创建消息之前。然后将消息内容添加到持有者,例如,使用messageHolder.addChild代替addChild。将函数clearHolderContents复制粘贴到最开始的某个地方,然后在任何你想调用的地方调用它,例如messageHolder。我想我做了你说的任何事情,但现在我有一个错误:场景1,层“动作”,第1帧,第165 1136行:参数数量不正确。预期1。我会发布我的代码,告诉我哪里错了。谢谢你的帮助。错误表明你调用了一些参数数目不正确的方法。这是一个需要1个参数的函数。我只能猜测是ClearContentHolderName还是AddChildName。
clearHolderContents(messageHolder);