2

我生成了随机气泡,我使用了在网上找到的代码。现在我想要一个隐藏随机气泡的点击事件。

这正是我使用的代码,

http://good-tutorials-4u.blogspot.com/2009/04/flash-bubbles-with-actionscript-3.html

我的气泡运行良好...

我已经尝试过了,到目前为止还没有运气..

addEventListener(MouseEvent.CLICK, eventListener);


function eventListener(eventObject:MouseEvent) {

        bubbles[i].splice(i,1,bubbles[i]);

}

我尝试使用数组,但它返回此输出 TypeError: Error #2007: Parameter child must be non-null。在 flash.display::DisplayObjectContainer/removeChild() 在 Function/()

TypeError:错误 #2007:参数 child 必须为非空。在 flash.display::DisplayObjectContainer/removeChild() 在 Function/()

4

4 回答 4

2

If you have the bubbles in an array this should work.

var randomIndex:int = int(Math.random() * bubbles.length);
parent.removeChild(bubbles[randomIndex]);
bubbles.splice(randomIndex, 1);

Notice that you have to remove the bubble from the display list too.

于 2013-06-28T15:00:50.603 回答
0

您可以尝试从原始数组中创建一个没有随机元素的新数组。然后只需将旧数组重新分配给新数组,例如

// get the random index to remove element at
var randomIndex:int = 0 + bubbles.length * Math.random();
var index:int = 0;

// create new array containing all apart from the chosen one
var newBubbles:Array = [];
for each (var item:Object in bubbles) {
    if (index != randomIndex) {
        newBubbles.push(item);
    }
    index++;
}

// here you go new array without one random item
bubbles = newBubbles;

或类似的东西。

于 2013-06-28T14:22:32.413 回答
0

尝试这个

bubbles.addEventListener(MouseEvent.CLICK, eventListener); // place this listener in moveBubbles function.

function eventListener(eventObject:MouseEvent):void {

     eventObject.currentTarget.visible = false;

}
于 2014-02-10T10:12:19.230 回答
0

这里只是对 Baris Usakli 的代码的一个小修改,如果你想删除被点击的那个。

var bubbles:Array = [];
function makeBubbles()
{
    for(var i:int=0;i<100;i++)
    {
        var bubble:Bubble = new Bubble();
        bubbles.push(bubble);
        addChild(bubble);
        bubble.addEventListener(MouseEvent.CLICK, eventListener);
     }
}


function eventListener(eventObject:MouseEvent) {

    var clickedBubbleIndex:int = bubbles.indexOf(eventObject.currentTarget);
    parent.removeChild(eventObject.currentTarget);
    bubbles.splice(clickedBubbleIndex:int, 1);

}
于 2013-06-28T17:17:55.063 回答