2012-12-30 33 views
1

我似乎有一點問題,我創建一個新的movieclip作爲AS3的變量,現在AS文件是Monster.AS,與我的對象,如果我因爲我有一個跟蹤消息,但它不會顯示在屏幕上,如果我將基類更改爲flash.display.MovieClip並更改它,則會將其作爲Monster和類Monster1的基類來運行。它運行的代碼,並顯示敵人...我很困惑,爲什麼它顯示和不顯示,因爲基類是如何工作的,這裏是創建怪物的代碼AS3 Flash CS6對象基類和類

這個是Level.as的代碼片段

public function Level(playerHero:HeroDisplay) 
    { 
     trace("Level code ran"); 
     monsterArray = new Array(); 
     heroGra = playerHero; 
     addChild(heroGra); 
     var newMonster = new Monster(); 
     monsterArray.push(newMonster); 
     addChild(newMonster); 
     setupLevel(1); 
     //Buttons 
     this.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); 
     this.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove); 
     this.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); 
    } 

這既適用於,但正如我如上所述,如果 基類=怪物 類= Monster1 不會被顯示 如果基類=的flash.display.MovieClip 類=怪物 將被顯示。

任何人都知道爲什麼?

帆布

更多信息, 這裏是類+基類的圖像

enter image description here

另外這裏的怪物AS文件

package 
{ 
import flash.display.MovieClip; 

public class Monster extends MovieClip 
{ 
    public var id:Number; 
    public var hp:Number; 
    public var damage:Number; 
    public var speed:Number; 
    public var xPos:Number; 
    public var yPos:Number; 
    public var avaiableSkill:Number; 

    public function Monster() 
    { 
     id = 1; 
     monsterSetup(); 
    } 

    public function monsterSetup():void 
    { 
     switch(id) 
     { 
      case 1: hp = 10; damage = 1; speed = 2; avaiableSkill = 0; this.x = 100; this.y = 150; trace("Monster Setup"); 
      break; 
      default: 
      break; 
     } 
    } 
} 
} 
+0

類怪物(當你沒有看到圖形)擴展MovieClip或雪碧? – fsbmain

+0

你有怪物或怪物1級嗎?還是隻使用自動生成的類? – prototypical

+0

我的怪物類擴展了MovieClip,但Monster1沒有AS文件,所以曾經有過 – Canvas

回答

1

你的怪物類有沒有視覺方面。

怪物1,我正在假設你的怪物藝術品是正確的?

要使用Monster1類,你可以使用此代碼:

var newMonster:Monster1 = new Monster1; 
addChild(newMonster); 

我不是你的方法是什麼是很清楚,但根據你的設置,你永遠不會產生視覺元素的一個實例 - 這是Monster1類。