Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   матрица из дублированных клипов ... (http://www.flasher.ru/forum/showthread.php?t=30395)

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

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


Часовой пояс GMT +4, время: 17:13.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.