Переделал:

Код AS3:
package
{
// импортируем классы
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.utils.Timer;
// конец импорта классов
public class Main extends Sprite
{
// переменные класса
private const FIELD_W:uint = 9;
private const FIELD_H:uint = 9;
private const NUM_MINES:uint = 10;
private var mineField:Array = new Array();
private var game_container:Sprite = new Sprite();
private var tile:tile_movieclip;
private var timer:Timer = new Timer(1000);
private var toolbar:toolbar_mc;
private var gameOver:Boolean = false;
private var firstClick:Boolean = true;
// конец записи переменных класса
public function Main()
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
// создаем минное поле
for (var i:uint = 0; i < FIELD_H; i++)
{
mineField[i] = new Array();
for (var j:uint = 0; j < FIELD_W; j++)
{
mineField[i].push(0);
}
}
// конец создания минного поля
// создание плиток
addChild(game_container);
for (i = 0; i < FIELD_H; i++)
{
for (j = 0; j < FIELD_W; j++)
{
tile = new tile_movieclip();
game_container.addChild(tile);
tile.gotoAndStop(1);
tile.nrow = i;
tile.ncol = j;
tile.buttonMode = true;
tile.x = 140 + tile.width * j;
tile.y = 65 + tile.height * i;
tile.addEventListener(MouseEvent.CLICK, onTileClicked);
}
}
// конец создания плиток
// управление временем и конец игры
toolbar = new toolbar_mc();
addChild(toolbar);
toolbar.y = stage.stageHeight - toolbar.height;
timer.start();
timer.addEventListener(TimerEvent.TIMER, onTick);
// конец управления временем и окончания игры
}
private function tileValue(row,col:uint):int
{
if (mineField[row] == undefined || mineField[row][col] == undefined)
{
return -1;
}
else
{
return mineField[row][col];
}
}
private function onTileClicked(e:MouseEvent):void
{
if (!gameOver)
{
var clicked_tile:tile_movieclip = e.currentTarget as tile_movieclip;
var clickedRow:uint = clicked_tile.nrow;
var clickedCol:uint = clicked_tile.ncol;
if (firstClick)
{
firstClick = false;
// минируем поле
var placedMines:uint = 0;
var randomRow,randomCol:uint;
while (placedMines < NUM_MINES)
{
randomRow = Math.floor(Math.random() * FIELD_H);
randomCol = Math.floor(Math.random() * FIELD_W);
if (mineField[randomRow][randomCol] == 0)
{
if (randomRow != clickedRow || randomCol != clickedCol)
{
mineField[randomRow][randomCol] = 9;
placedMines++;
}
}
}
// конец минирования поля
// помещаем цифры
for (var i = 0; i < FIELD_H; i++)
{
for (var j = 0; j < FIELD_W; j++)
{
if (mineField[i][j] == 9)
{
for (var ii:int = -1; ii <= 1; ii++)
{
for (var jj:int =- 1; jj <= 1; jj++)
{
if (ii != 0 || jj != 0)
{
if (tileValue(i+ii,j+jj) != 9 && tileValue(i+ii,j+jj) != -1)
{
mineField[i + ii][j + jj]++;
}
}
}
}
}
}
}
var debugString:String;
for (i = 0; i < FIELD_H; i++)
{
debugString = "";
for (j = 0; j < FIELD_W; j++)
{
debugString += mineField[i][j] + " ";
}
trace(debugString);
}
// конец помещения цифр
}
var clickedValue:uint = mineField[clickedRow][clickedCol];
if (e.shiftKey)
{
clicked_tile.gotoAndStop(5 - clicked_tile.currentFrame);
}
else
{
if (clicked_tile.currentFrame == 1)
{
clicked_tile.removeEventListener(MouseEvent.CLICK, onTileClicked);
clicked_tile.buttonMode = false;
// пустая плитка
if (clickedValue == 0)
{
floodFill(clickedRow, clickedCol);
}
// конец пустой плитки
// плитка с цифрой
if (clickedValue > 0 && clickedValue < 9)
{
clicked_tile.gotoAndStop(2);
clicked_tile.tile_text.text = clickedValue.toString();
}
// конец плитки с цифрой
// мина
if (clickedValue == 9)
{
clicked_tile.gotoAndStop(3);
timer.removeEventListener(TimerEvent.TIMER, onTick);
toolbar.message_text.text = "Вы подорвались на мине!";
gameOver = true;
}
// конец мины ;
}
}
}
}
private function onTick(e:TimerEvent):void
{
toolbar.message_text.text = "Время игры: " + e.target.currentCount + " сек.";
}
private function floodFill(row,col:uint):void
{
var emptyTile:tile_movieclip;
emptyTile = game_container.getChildAt(row * FIELD_W + col) as
tile_movieclip;
if (emptyTile.currentFrame == 1)
{
emptyTile.removeEventListener(MouseEvent.CLICK, onTileClicked);
emptyTile.buttonMode = false;
emptyTile.gotoAndStop(2);
if (mineField[row][col] > 0)
{
emptyTile.tile_text.text = mineField[row][col].toString();
}
else
{
emptyTile.tile_text.text = "";
}
if (mineField[row][col] == 0)
{
for (var ii:int = -1; ii <= 1; ii++)
{
for (var jj:int = -1; jj <= 1; jj++)
{
if (ii != 0 || jj != 0)
{
if (tileValue(row + ii, col + jj) != 9)
{
if (tileValue(row + ii, col + jj) != -1)
{
floodFill(row + ii, col + jj);
}
}
}
}
}
}
}
}
}
}
проблему и вызывала эта строка:

Код AS3:
toolbar.y = stage.stageHeight - toolbar.height;
в конструкторе здесь в stage обращаться нельзя
п.с. никаких вебмани не надо. Форум на то и создан, чтобы помогать просто так.