所以基本上我想让一个男孩吃掉一些使用addChild生成的蘑菇。我做了一个热门话题。但是我有一个未定义属性的错误1120。我怎么能解决这个问题?任何帮助将不胜感激。
继承我的代码。
var timer:Timer = new Timer(1000,10);
timer.addEventListener(TimerEvent.TIMER, addTarget);
timer.start();
var score:int = 0;
function addTarget(e:TimerEvent)
{
var posX = Math.random()*860;
var posY = Math.random()*500;
var mushroom:Mushroom = new Mushroom();
addChild(mushroom);
mushroom.x = posX;
mushroom.y = posY;
boy_mc.addEventListener(Event.ENTER_FRAME, scoring);
}
function scoring(e:Event)
{
trace("test");
if (boy_mc.hitTestObject(mushroom))
{
score = score + (MovieClip(e.currentTarget).point);
score_txt.text = String(score);
}
}
----------------并且继承我的班级档案----------
package
{
import flash.display.MovieClip;
public class Mushroom extends MovieClip
{
private var size:Number;
public var point:int;
public var mushroom:int;
public function Mushroom()
{
// constructor code
size = (Math.random()*100)+20;
this.width = size;
this.height = size;
point = Math.random()*10;
}
}
}
答案 0 :(得分:0)
您需要蘑菇参考,例如Array()
或Vector.<Mushroom>()
。然后,访问for
中的引用。
var mushrooms:Vector.<Mushrooms> = new Vector.<Mushrooms>();
var timer:Timer = new Timer(1000,10);
timer.addEventListener(TimerEvent.TIMER, addTarget);
timer.start();
var score:int = 0;
function addTarget(e:TimerEvent) {
var posX = Math.random()*860;
var posY = Math.random()*500;
var mushroom:Mushroom = new Mushroom();
mushrooms.push(mushroom); //add the new mushroom in vector
addChild(mushroom);
mushroom.x = posX;
mushroom.y = posY;
boy_mc.addEventListener(Event.ENTER_FRAME, scoring);
}
function scoring(e:Event) {
var totalMushrooms:int = mushrooms.length;
for(var i:int = 0; i < totalMushrooms; i++) {
if (boy_mc.hitTestObject(mushrooms[i])) { //mushroom reference
score = score + (MovieClip(e.currentTarget).point);
score_txt.text = String(score);
removeChild(mushrooms[i]); //remove
mushrooms.splice(i, 1); //remove mushroom from vector
}
}
}