PDA

Просмотр полной версии : матрица из дублированных клипов ...


metton
17.04.2002, 17:44
Люди!
Во хотел сделать матрицу из текстовых полей (они заключены в клипе twoBit)...
код и клип расположены на главной временной диаграмме
но чё-т не очень получается...
посмотрите, чё тут не то?..

for (i=0; i<=10; i++) {
duplicateMovieClip ('twoBit','twoBit'+i,i);
eval ('twoBit'+i)._x += 10*i;

for (j=11; j<=23; j++) {
duplicateMovieClip ('twoBit','twoBit'+j,j);
eval ('twoBit'+j)._y += (j*18)-170;
}

}

спсбо... :)

Nox Noctis
17.04.2002, 19:05
ммм... во-первых у тебя глубина, на которую дублируешь постоянно повторяется, и из-за этого клипы все время друг друга стирают, во-вторых - та же фигня с именами клипов :)

я бы сделал что-нить вроде так:
def = {x:twobit._x, y:twobit._y} // чтобы не париться засекаем начальное положение клипа
for (i=0; i<11; i++) {
for (j=0; j<11; j++) {
duplicateMovieClip("twoBit", nnm="twoBit"+i+"_"+j, i*12+j);
this[nnm]._x = def.x+10*i
this[nnm]._y = def.y+j*18
}
}

:)

RFMitrio
17.04.2002, 19:07
lv=1;
for(i=0;i<12;i++)
{
for(j=0;j<13;j++)
{
duplicateMovieClip ('twoBit','twoBit'+lv,lv);
this["twoBit"+lv]._x = 10*j;
this["twoBit"+lv++]._y = 18*i-170;
}
}

не успел:) :)

Nox Noctis
17.04.2002, 19:14
Оригинал написал(а) RFMitrio
не успел:) :)
:p

DeliMIter
17.04.2002, 19:37
Уважаемые титаны! Я вклинюсь в вашу битву и напомню, что

for (i = 0; i < 12; i++)
for (j = 0; j < 13; j++)
createTextField("twoBit_" + i + "_" + j, ++_depth, i * 60, j * 20, 50, 16);

короче всего вышеупомянутого и обладает более приятной и интуитивной адресацией впоследствии. И хотя постановка задачи состояла именно в использовании duplicateMovieCLip, но мне как-то кажется, что так все таки проще ;)))))))

Успехов!

Nox Noctis
17.04.2002, 19:44
ироничный какой нашелся :)

во-первых: человек просил найти и исправить ошибки в _его_ скрипте
во-вторых: дубликейт он и в африке дубликейт, а вот криэйтТекстФилд - он такой чччерт знает (и мы тоже знаем) где :D

и вообще - ты поменял задачу и еще ехидничаешь ;)

metton
18.04.2002, 00:18
2Nox Noctis && 2RFMitrio
Спасибо - усё работает...
тока если не в лом объясните - не всё понял КАК это работает:

1) this["twoBit"+lv] - что эт за массив с чем его, так сказать...

2)def = {x:twobit._x, y:twobit._y} - что это за конструкция и с чем ее...


2DeliMIter
Спасибо за ответ
тока не понял - чё это за ф-ция: createTextField
и как её юзать...

всем спасибо!!! ;) :)

Nox Noctis
18.04.2002, 01:19
this["twoBit"+lv]
по сути то же самое, что у тебя было в виде: eval("twoBit"+lv),
только работает гораздо быстрее, и выглядит изящнее :)
все объекты, созданные в таймлайне или скриптом объединяются в ассоциативный массив, поэтому можно к чему угодно обратиться через:
путь_к_родительскому_объекту["имя_объекта"]
где "имя_объекта" - это название переменной, мувиклипа, и т.п.

def = {x:twobit._x, y:twobit._y}
это то же самое что:
def = new Object()
def.x = twobit._x;
def.y = twobit._y;
только компактнее :)

metton
18.04.2002, 01:29
2Nox Noctis
Спасибо!!! :)
терь понял... ;)

DeliMIter
18.04.2002, 15:29
2Nox Noctis

Я ведь этого и не скрывал :))))))))))))))))) !!!!!!!!!!!!!!