Показать сообщение отдельно
Старый 23.10.2006, 15:02
AlexSol вне форума Посмотреть профиль Отправить личное сообщение для AlexSol Найти все сообщения от AlexSol
  № 1  
Ответить с цитированием
AlexSol

Регистрация: Dec 2005
Сообщений: 316
По умолчанию пошаговое считывание из BitmapData

делаю рисовалку, где необходимо передать результат на сервер. считываю данные с BitmapData и заношу массив.
Код:
arr_btn.onRelease = function() {
	t = getTimer();
	var lastColor;
	for (i=0; i<Math.round(clip._height); i++) {
		var leng:Number = 0;
		arrayCss[i] = new Array();
		var index:Number = 0;
		t1 = getTimer();
		lineInfo(i);
	}
	makeAutData(arrayCss);
	trace('-----------------');
	trace(getTimer()-t);
};
function lineInfo(i) {
	for (j=0; j<=Math.round(clip._width); j++) {
		if (j == 0) {
			lastColor = bitmap.getPixel(j+1, i+1).toString(16);
		}
		var color = bitmap.getPixel(j+1, i+1).toString(16);
		//если тот же цвет
		if (color == lastColor) {
			//если клетка не последняя
			if (j != Math.round(clip._width)) {
				leng++;
			} else {
				//если последняя: записываем
				arrayCss[i][index] = [leng, lastColor];
			}
		} else {
			//цвет другой
			arrayCss[i][index] = [leng, lastColor];
			leng = 1;
			index++;
			lastColor = color;
		}
	}
	trace('i'+i+'::'+(getTimer()-t1));
}
кактинку 300*300 обрабатывает около 3 сек, при этом подвисает и выдает результат trace('i'+i+'::'+(getTimer()-t1)) после того как считывание закончено. Хочется разбить этот процесс на части, чтобы пользователю выводился процент считанной инфы, пока программа думает.