Sprite移动后保留原始位置的副本

时间:2014-09-14 03:27:25

标签: actionscript-3

我以前从未见过这种情况。我有一些非常简单的代码来显示一个Sprite并移动它。我首先用这段代码将它添加到舞台上:

public var floor:Floor;
    public var char:Character;

    public function Game() 
    {
    addEventListener(Event.ADDED_TO_STAGE, init);
    }

    private function init(e:Event):void{
        floor = new Floor();
        addChild(floor);

        char = new Character();
        addChild(char);
        char.x = stage.stageWidth - char.width;


        var item:Sprite = new Sprite();
        item.graphics.beginFill(0x666600);
        item.graphics.drawRect(400, 400, 50, 50);
        item.addEventListener(MouseEvent.CLICK, moveEast);
        addChild(item);
    }

图形的最后一点仅用于测试;基本上,我想要一个按钮,我可以按下并让它将所有内容移动50像素。这是moveEast函数:

public function moveEast(e:Event):void {
        floor.x += 50;
    }

如您所见,这非常简单。理论上,我应该添加我的Floor对象,然后每当按下按钮时将其移动到右侧50像素。然而,在实践中,所发生的是两种变化而不是变化。具体来说,它确实转变;我可以将它一直移动到舞台上并让整个物体移动。但是,它还保留原始位置的对象副本。我有信心,我没有意外地在某个地方添加了另一个孩子。如果我从代码中删除单个addChild(floor)行,则不显示任何内容。关于为什么会这样做的任何想法?

0 个答案:

没有答案