AlexSol
23.10.2006, 15:02
делаю рисовалку, где необходимо передать результат на сервер. считываю данные с 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)) после того как считывание закончено. Хочется разбить этот процесс на части, чтобы пользователю выводился процент считанной инфы, пока программа думает.
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)) после того как считывание закончено. Хочется разбить этот процесс на части, чтобы пользователю выводился процент считанной инфы, пока программа думает.