PDA

Просмотр полной версии : При аттаче в цикле одного мувика отрисовываются не все


Annihilator
09.11.2006, 14:30
Второй день бьюсь со транным глюком.
Есть матрица из ноликов и единичек. Перебираю её элементы в цикле и аттачу мувик из библиотеки. Все копии создаются, но вот отрисовываются не все, причем узор получается каждый раз один и тот же.
Вот файл (http://guest:guest@217.76.195.114/data/gluk.rar)

Вот код:
this._lockroot = true;
var mapstring="1|1|1|1|1|1|1|1|1|1|1|1|1***1|1|1|1|1|1|1|1|1|1|1|1|1***1|1|1|1|1|1|1|1|1|1|1|1|1***1|1|1|1|1|1|1|1|1|1|1|1|1***1|1|1|1|1|1|1|1|1|1|1|1|1***0|0|1|0|0| 0|0|0|0|0|0|0|0***0|0|0|0|0|0|0|0|0|0|0|0|0***0|0|0|0|0|0|0|0|0|0|0|0|0***0|0|0|0|0|0|0|0|0|0|0|0|0***0|0|0|0|0|0|0|0|0|0|0|0|0";
var dx=0;
var dy=0;
var counter=1;
var depth=0;
pole.map=new Array();
pole.swapDepths(10);
pole.mh=10;
pole.mw=13;
pole.createEmptyMovieClip("grid", 1000);

function drawGrid(){
for (var i=0; i<_root.pole.mh; i++) {
for (var j=0; j<_root.pole.mw; j++) {
var a=_root.pole.grid.attachMovie("gridcell", "cell_"+i+"_"+j, j*(i+1), {_x:j*60, _y:i*60});
updateAfterEvent();
_root.pole.grid["cell_"+i+"_"+j].ifield.text=i;
_root.pole.grid["cell_"+i+"_"+j].jfield.text=j;
if (_root.pole.map[i][j]==1) {
_root.pole.grid["cell_"+i+"_"+j].gotoAndStop("on");
}
trace(a);
}
}
}
var arr_tmp:Array=mapstring.split("***");
for(var i=0;i<arr_tmp.length;i++){
_root.pole.map[i]=new Array();
_root.pole.map[i]=arr_tmp[i].split("|");
}

drawGrid();
stop();

Помогите разобраться, ибо проект стоИт из-за этой хренотени :mad:

miramax
09.11.2006, 15:21
Ого сколько кода, это же должна быть сетка?

var a=_root.pole.grid.attachMovie("gridcell", "cell_"+i+"_"+j, j*(i+1), {_x:j*60, _y:i*60});
Мне не нравится эта строчка, а именно то как ты распределил уровни.
Вместо j*(i+1) надо написать что -то типа
j+i*ширина_поля
или высота поля, смотря что там у тебя в цикле.
Это не глюк! Это твоя ошибка.

Annihilator
09.11.2006, 17:14
miramax - спасибо огромное. У меня было подозрение, что это связано с глубиной, но как я не менял формулу глубины через i и j, все равно какие-нибудь копии не показывались. сделал глубину через отдельную переменную (типа depth++) и всё отобразилось как надо.
Уря :victory: