仅供记录,我正在使用AS3。
我有一个问题,我想在AS3中随机删除一个精灵,我已经设法弄清楚如何创建精灵,使它们填充为网格,只是为了我的生活,我无法弄清楚如何删除它们!
这是我用来创建它们的代码:
function showpixels() : void
{
for (var i:int = 0; i < 40; i++)
{
for (var j:int = 0; j < 40; j++)
{
var s:Sprite = new Sprite();
s.graphics.beginFill(0);
s.graphics.drawRect(i*10, j*10, 10, 10);
s.graphics.endFill();
addChild(s);
pixels.push(s);
}
}
}
基本上我需要随机删除这些内容,直到可以看到下面的内容。
任何帮助都会很好,我对此很新!谢谢!
答案 0 :(得分:1)
function removeRandom():void
{
var rand:uint = Math.random()*pixels.length;
var i:Sprite = Sprite(pixels[rand]);
if(i.parent) i.parent.removeChild(i);
pixels.splice(rand, 1);
}
更新:要随机删除你可以尝试这样的事情:
var _timer:int = 100;
addEventListener(Event.ENTER_FRAME, _handle);
function _handle(e:Event):void
{
if(pixels.length > 0) _timer --;
if(_timer < 1)
{
_timer = 10 + Math.random()*50;
removeRandom();
}
}
function removeRandom():void
{
var rand:uint = Math.random()*pixels.length;
var i:Sprite = Sprite(pixels[rand]);
if(i.parent) i.parent.removeChild(i);
pixels.splice(rand, 1);
}
答案 1 :(得分:1)
随机播放Array
使用pixels.sort(function (...args):int { return int(2*Math.random()-1) })
。
然后你可以像这样简单地删除它们:
function remove():void {
if (pixels.length) removeChild(pixels.pop());
else clearInterval(this.id);
}
并在showpixels的末尾添加此行:
this.id = setInterval(remove, 500);