private boolean isDying(Dimension aDi, int aColor)
	{
		if (!mBallDying.isEmpty())
		{
			// ڴҪȥĶвΪʱ
			mBallDying.clear();
		}
		
		if (aColor == BallColor.WHITE)
		{
			// ʱ,ɨ
			DyingWhiteDir(aDi, 1, 0);	// 
			DyingWhiteDir(aDi, -1, 0);	// 
			DyingWhiteDir(aDi, 0, 1);	// 
			DyingWhiteDir(aDi, 0, -1);	// 
			DyingWhiteDir(aDi, 1, 1);	// 
			DyingWhiteDir(aDi, -1, -1);	// 
			DyingWhiteDir(aDi, 1, -1);	// 
			DyingWhiteDir(aDi, -1, 1);	// 
		}
		else
		{
			// ǰ,ȥ㷨,
			
			// 
			int bLen = 1;
			int i = aDi.width + 1;
			int j = aDi.height;
			
			while (i < FaceStyle.BALL_HNUM && (mWhatBall[i][j] == aColor || mWhatBall[i][j] == BallColor.WHITE))
			{
				mBallDying.addLast(new Dimension(i++, j));
				bLen++;
			}
			i = aDi.width - 1;
			while (i >= 0 && (mWhatBall[i][j] == aColor || mWhatBall[i][j] == BallColor.WHITE))
			{
				mBallDying.addLast(new Dimension(i--, j));
				bLen++;
			}
			if (bLen < 5)
			{
				// С5һȥ,ȥսеԪ,ͬ
				mBallDying.clear();	
			}
			
			// 
			bLen = 1;
			i = aDi.width;
			j = aDi.height + 1;
			
			while (j < FaceStyle.BALL_VNUM && (mWhatBall[i][j] == aColor || mWhatBall[i][j] == BallColor.WHITE))
			{
				mBallDying.addLast(new Dimension(i, j++));
				bLen++;
			}
			j = aDi.height - 1;
			while (j >= 0 && (mWhatBall[i][j] == aColor || mWhatBall[i][j] == BallColor.WHITE))
			{
				mBallDying.addLast(new Dimension(i, j--));
				bLen++;
			}
			if (bLen < 5)
			{
				for (; bLen>1; bLen--)
				{
					mBallDying.removeLast();
				}
			}
			
			// б
			bLen = 1;
			i = aDi.width + 1;
			j = aDi.height + 1;
			
			while (i < FaceStyle.BALL_HNUM && j < FaceStyle.BALL_VNUM && (mWhatBall[i][j] == aColor || mWhatBall[i][j] == BallColor.WHITE))
			{
				mBallDying.addLast(new Dimension(i++, j++));
				bLen++;
			}
			i = aDi.width - 1;
			j = aDi.height - 1;
			while (i >= 0 && j >= 0 && (mWhatBall[i][j] == aColor || mWhatBall[i][j] == BallColor.WHITE))
			{
				mBallDying.addLast(new Dimension(i--, j--));
				bLen++;
			}
			if (bLen < 5)
			{
				for (; bLen>1; bLen--)
				{
					mBallDying.removeLast();
				}
			}
			
			// б
			bLen = 1;
			i = aDi.width + 1;
			j = aDi.height - 1;
			
			while (i < FaceStyle.BALL_HNUM && j >= 0 && (mWhatBall[i][j] == aColor || mWhatBall[i][j] == BallColor.WHITE))
			{
				mBallDying.addLast(new Dimension(i++, j--));
				bLen++;
			}
			i = aDi.width - 1;
			j = aDi.height + 1;
			while (i >= 0 && j < FaceStyle.BALL_VNUM && (mWhatBall[i][j] == aColor || mWhatBall[i][j] == BallColor.WHITE))
			{
				mBallDying.addLast(new Dimension(i--, j++));
				bLen++;
			}
			if (bLen < 5)
			{
				for (; bLen>1; bLen--)
				{
					mBallDying.removeLast();
				}
			}
		}
		
		if (!mBallDying.isEmpty())
		{
			// ǿȥ
			mBallDying.addLast(new Dimension(aDi));
			return true;
		}
		
		return false;	// ûȥ
	}