2015-02-09 52 views
0

我通常不會這樣做,但我迷失在這裏。刪除舞臺上所有創建的符號

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

我相信最好的辦法是創建一個容器,這樣你就可以添加所有的瓷磚並按照你決定的最佳方式進行管理。

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

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

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

完美。愛你。 – Doooder 2015-02-09 13:31:41