2015-09-29 54 views
1

所以基本上我想讓一個男孩吃掉一些使用addChild生成的蘑菇。我爲它做了一個打擊。但是我有一個未定義屬性的錯誤1120。我該如何解決這個問題?任何幫助將非常感激。Actionscript 3.0如何從addChild定義對象?

繼承人我的代碼。

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

錯誤:就此「if(boy_mc.hitTestObject(蘑菇))」訪問未定義的屬性蘑菇。 – H4dies

+0

爲了完成,您應該通過編輯將錯誤消息添加到問題本身 – brodoll

回答

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 
     } 
    } 

} 
相關問題