不是通过名字得到孩子(as3 flash)

时间:2014-04-16 20:33:07

标签: actionscript-3 flash

    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函数中的跟踪命令不同。

但是,由于跟踪命令,我有点解决了这个问题,为什么名称设置为播放器。

1 个答案:

答案 0 :(得分:0)

固定,傻我!

            character = timmy;

这意味着角色是timmy的实例!

当我宣布并初始化时,我必须将timmy的名字设为“玩家”。

timmy.name = "player";

因此

character.name will equal player, since...

character = player

我一定会喜欢As3,类系统和层次结构系统:)

抱歉浪费时间,这是一个无聊的错误。