private var childrenOnStage:Number;
public function Main()
{
//iniation players
character = new player();
character.name = "player";
timmy = new SirTimmy();
caroline = new princess();
//init the ground
ground = new Ground();
stage.addEventListener(Event.ENTER_FRAME, mainGameLoop)
}
private function startLevel1():void
{
stage.removeEventListener(Event.ENTER_FRAME, mainGameLoop)
gotoAndStop("Level 1");
addChild(character);
character.x = stage.stageWidth * 0.5;
character.y = 0;
addChild(ground);
stage.addEventListener(Event.ENTER_FRAME, level1)
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUp);
childrenOnStage = this.numChildren;
}
private function processCollisions():void
{
trace(character.name); //said instance6 even though i set its name to..."player")
trace(character.name == "player"); // said false for this
trace(character.name == "instance6"); // said true for this so i put this name below
for (var c:int = 0; c < childrenOnStage; c++)
{
if (getChildAt(c).name == "instance6" || getChildAt(c).name == "enemy")
{
你已经看到我已经启动了我的变量并宣布了它们。
字符已被赋予名称“玩家”。但是,此名称不适用于此名称,因为processCollision函数中的跟踪命令不同。
但是,由于跟踪命令,我有点解决了这个问题,为什么名称设置为播放器。
答案 0 :(得分:0)
character = timmy;
这意味着角色是timmy的实例!
当我宣布并初始化时,我必须将timmy的名字设为“玩家”。
timmy.name = "player";
因此
character.name will equal player, since...
character = player
我一定会喜欢As3,类系统和层次结构系统:)
抱歉浪费时间,这是一个无聊的错误。