2015-02-09 43 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