私は小さな問題を抱えているようです.AS3で変数として新しいムービークリップを作成しています.ASファイルはMonster.ASで、基本クラスをMonster、クラスをMonster1、トレース メッセージがあるためモンスター コードが実行されますが、画面には表示されません。基本クラスを flash.display.MovieClip に変更し、クラスを Monster に変更すると、コードが実行され、敵...基本クラスがどのように機能するかが原因で、表示される理由と表示されない理由について非常に混乱しています。モンスターを作成するコードは次のとおりです
これは 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);
}
これは両方で機能しますが、上で述べたように、ベース クラス = モンスター クラス = モンスター 1 の場合は表示されません ベース クラス = flash.display.MovieClip クラス = モンスター が表示されます。
理由を知っている人はいますか?
キャンバス
詳細, クラス + ベースクラスの画像はこちら
また、ここにモンスター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;
}
}
}
}