我已经生成了随机气泡,我使用了网上找到的代码。现在我想要一个隐藏随机气泡的点击事件。
这正是我使用的代码,
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:错误#2007:参数child必须为非null。 在flash.display :: DisplayObjectContainer / removeChild() 在Function /()
TypeError:错误#2007:参数child必须为非null。 在flash.display :: DisplayObjectContainer / removeChild() 在Function /()
答案 0 :(得分:2)
如果你在数组中有气泡,这应该有用。
var randomIndex:int = int(Math.random() * bubbles.length);
parent.removeChild(bubbles[randomIndex]);
bubbles.splice(randomIndex, 1);
请注意,您还必须从显示列表中删除气泡。
答案 1 :(得分: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;
或类似的东西。
答案 2 :(得分: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);
}
答案 3 :(得分:0)
试试这个
bubbles.addEventListener(MouseEvent.CLICK, eventListener); // place this listener in moveBubbles function.
function eventListener(eventObject:MouseEvent):void {
eventObject.currentTarget.visible = false;
}