2013-11-24 3 views
0

Im борется с проблемой и не знаю, как ее решить. Я хочу, чтобы каждый раз, когда я нажимал на мышку, карты были на 1 меньше по сравнению с предыдущим временем и в то же время центрировали новую (в моем случае, когда я нажимаю «плохой» -> 3 карты) снова на сцене.как удалить ребенка и центр после этого

, но я могу думать только об этом, нажимая вновь созданные карты в Sprite, но не знаю, как удалить последнюю карту после этого. я сделал попробовать только MyArray [lastElement], но это дает мне

ArgumentError: Error # 2025: Прилагаемый DisplayObject должен быть дочерним элементом вызывающего. в flash.display :: DisplayObjectContainer/RemoveChild() в MainClass/OnClick()

CardClass является представляющий собой простую картину карты

так у меня есть этот код до сих пор:

public class MainClass extends MovieClip 
{ 

    private var myArray:Array = new Array(); 
    private var myContainer:Sprite = new Sprite(); 

    public function MainClass() 
    { 
     for (var i:int=0; i<4; i++) 
     { 
      myArray[i]= new CardClass(); 
      myArray[i].x = myArray[i].width * i + i * 10; 
      myContainer.addChild(myArray[i]); 
     } 

     myContainer.x = stage.stageWidth/2 - myContainer.width/2; 
     myContainer.y = 40; 
     this.addChild(myContainer); 

     stage.addEventListener(Event.ENTER_FRAME, onEveryFrame); 
    } 

    private function onEveryFrame(ev:Event):void 
    { 
     stage.addEventListener(MouseEvent.CLICK, onClick); 
     myContainer.x = stage.stageWidth/2 - myContainer.width/2; 
     myContainer.y = 40; 
    } 

    private function onClick(evt:MouseEvent):void 
    { 
     var lastElement = myArray.length - 1; 
     trace(lastElement); 
     this.removeChild(myArray[lastElement]); 
     myArray.pop(); 
    } 
} 

}

если я пытаюсь просто добавить карты на сцене прямо (не так, как здесь -> в контейнере) он делает то, что IW ant от него (он удаляет последнюю карту), но потом я не могу понять, как центрировать весь массив карточек на сцене.

любые идеи?

ответ

1

Попробуйте это в методе onClick:

myContainer.removeChild(myArray[lastElement]); 

Вы добавляете карты MyContainer, так что вы удалите их из MyContainer, а также.

1

Вы добавляете карты в элемент myContainer, но удаляете их из этого элемента, но это не связано с этими объектами.

Ваш код:

private function onClick(evt:MouseEvent):void 
     { 
      var lastElement = myArray.length - 1; 
      trace(lastElement); 
      this.removeChild(myArray[lastElement]); 
      myArray.pop(); 
     } 

Заменить на это:

private function onClick(evt:MouseEvent):void 
     { 
      var lastElement = myArray.length - 1; 
      trace(lastElement); 
      myContainer.removeChild(myArray[lastElement]); 
      myArray.pop(); 
     } 
Смежные вопросы