从舞台中删除所有创建的符号

时间:2015-02-09 13:16:09

标签: actionscript-3 flash flash-cs6

我通常不这样做,但我迷失了。

import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.utils.Timer;

var first_tile:colors;
var second_tile:colors;
var pause_timer:Timer;
var game_timer:Timer;
var colordeck:Array = new Array(1,1,2,2,3,3,4,4,5,5,6,6);

function color_match() {
    game_timer = new Timer(10000,1);
    for (x=1; x<=4; x++) {
        for (y=1; y<=3; y++) {
            var random_card = Math.floor(Math.random()*colordeck.length);
            var tile:colors = new colors();
            tile.col = colordeck[random_card];
            colordeck.splice(random_card,1);
            tile.gotoAndStop(7);
            tile.x = ((x-1)*70)+30;
            tile.y = ((y-1)*100)+30;
            tile.addEventListener(MouseEvent.CLICK,tile_clicked);
            game_timer.addEventListener(TimerEvent.TIMER_COMPLETE,end_game);
            addChild(tile);
        }
    }
    game_timer.start();
}
function tile_clicked(event:MouseEvent) {
    var clicked:colors = (event.currentTarget as colors);
    if (first_tile == null) {
        first_tile = clicked;
        first_tile.gotoAndStop(clicked.col);
    }
    else if (second_tile == null && first_tile != clicked) {
        second_tile = clicked;
        second_tile.gotoAndStop(clicked.col);
        if (first_tile.col == second_tile.col) {
            pause_timer = new Timer(1000,1);
             pause_timer.addEventListener(TimerEvent.TIMER_COMPLETE,remove_tiles);
            pause_timer.start();
        }
        else {
            pause_timer = new Timer(1000,1);
            pause_timer.addEventListener(TimerEvent.TIMER_COMPLETE,reset_tiles);
            pause_timer.start();
        }
    }
}
function reset_tiles(event:TimerEvent) {
    first_tile.gotoAndStop(7);
    second_tile.gotoAndStop(7);
    first_tile = null;
    second_tile = null;
    pause_timer.removeEventListener(TimerEvent.TIMER_COMPLETE,reset_tiles);
}
function remove_tiles(event:TimerEvent) {
    removeChild(first_tile);
    removeChild(second_tile);
    first_tile = null;
    second_tile = null;
    pause_timer.removeEventListener(TimerEvent.TIMER_COMPLETE,remove_tiles);
}

function end_game(event:TimerEvent) {


}

这是一款小配色游戏。单击两个图块,如果匹配则会消失,否则返回灰色。循环以随机放置的对创建颜色实例,并将它们设置为第7帧(灰色)。

当游戏时间达到零时,我无法解决如何删除任何剩余的颜色块。我尝试的一切都是抛出错误。然后我们的想法就是让人们再次玩游戏,或者赢得剧本。

您不必为我编码,我只需要了解这个过程!感谢。

1 个答案:

答案 0 :(得分:1)

我认为最好的方法是创建一个容器,这样您就可以添加所有切片并按照您决定的最佳方式进行管理。

  var tileContainer:Sprite = new Sprite();
  addChild(tileContainer);

  // instead of addChild(tile);
  tileContainer.addChild(tile);

  // to remove all tiles
  tileContainer.removeChildren();