PDA

Просмотр полной версии : Прошу помочь всех,кто разбирается с eval


Gar
23.07.2003, 17:01
Уже неделю мучаюсь с eval. Просмотрел все хелпы и примеры, ничего нужного не нашел. Прошу помочь!
Вот последовательность действий.

1) Дублирую мувик.

duplicateMovieClip(_root.clip, eval(_root.clip._name+i.toString()), i);

2) Теперь мне надо чтобы дублированый мувик gotoAndStop на второй свой кадр.
Пробовал двумя способами, оба не работают:
первый:
tellTarget(eval(_root.clip._name+i.toString())) {gotoAndStop(2);}

второй:
eval(_root.clip._name+i.toString()).gotoAndStop(2);

Armen Khanoyants
23.07.2003, 18:44
используй this["name"+i], это тоже что и this.eval("name"+i)
ну и соответственно _root[....], _parent[....]

derhab
23.07.2003, 19:17
если с eval, то записывай так:

duplicateMovieClip(_root.clip, "clip"+i, i);
eval("clip"+i).gotoAndStop(2);

очень просто

Lukasus
23.07.2003, 19:22
сделай своей конструкции
trace (eval(_root.clip._name+i.toString()))
чего там показывает? то что потом вызываешь?

Gar
23.07.2003, 21:51
Спасибо за отклик!
Извиняюсь за то, что долго не отвечал - инет кончился.
Написал trace, но он выдает

undefined


Создать он его не успевает, что ли?

Gar
23.07.2003, 22:04
Имя клипа - "clip"
Попробовал написать
trace(this._name+i.toString());
Он выдает только "clip", без цифры, если без toString() - то же самое.

Если написать:
trace(eval(this._name+i.toString()));
То опять получаю undefined. Точно так же, если пишу без toString().

Gar
23.07.2003, 22:20
Имя клипа - "clip"
Попробовал написать
trace(this._name+i.toString());
Он выдает только "clip", без цифры, если без toString() - то же самое.

Если написать:
trace(eval(this._name+i.toString()));
То опять получаю undefined. Точно так же, если пишу без toString().

Пожалуйста, помогите снова - подсказанные вами методы не сработали, может, дело не в вызове.

Вот исходник - в нем я все сильно упростил, чтобы скинуть размер, однако и он не хочет работать.

Useless
23.07.2003, 23:51
Слушай, ты хелп вообще читал, прежде чем браться за дело?duplicateMovieClip(_root.clip, eval(_root.clip._name+i.toString()), i);Зачем тебе здесь-то нужен евал?
У duplicateMovieClip() второй параметр - строка, евал же возвращает объект.

Я нифига не понял, чего ты вообще добиваешься, но обычно подобный код выглядит так:name = "clip" + i;
duplicateMovieClip(_root.mc, name, i);
eval(name).gotoAndStop(2);Но лучше для начала расскажи, какой эффект ты рассчитываешь получить от своего кода?

Lukasus
24.07.2003, 11:32
просто сделай что сказал derhab

duplicateMovieClip(_root.clip, "clip"+i, i);
eval("clip"+i).gotoAndStop(2);

очень просто

так как у тебя клип называется "clip"
то это уже готовое решение для тебя :D

Gar
24.07.2003, 12:54
Читая хелп и смотря исходники я не раз пытался применить все эти способы. Однако если вы попробуете любой из них вписать в представленный мной файл, то скорее всего ничего не выйдет. Я уже не раз пытался.

Добиться я хочу того, чтобы можно было брать прямоугольный мувик мышкой, перетаскивать его на нужное место и ставить там. Точнее, ставится его копия, причем копию надо перевести во второй кадр.

Вот такая картина. Кто сможет, пожалуйста выложте исходник.

Useless
24.07.2003, 14:27
Хелп плохо читал...Однако если вы попробуете любой из них вписать в представленный мной файл, то скорее всего ничего не выйдет.Надо было поспорить с тобой, да ладно уж...

В комментариях - изменения в сравнении с твоим вариантом.

Useless
24.07.2003, 14:34
исходник:

Gar
24.07.2003, 14:48
Изменения я видел, и очень благодарен всем за внимание.
Не хотелось бы ламерить, но все равно не догоняю почему после подстановки кода ничего не работает...
Если кому не влом, выложите, пожалуйста, работающий исходник.

p.s. мне действительно он очень нужен.

Gar
24.07.2003, 14:52
Огромное тебе спасибо Useless!
Если встетимся, то с меня пиво! Или что тебе из выпивки больше нравится...

Gar
24.07.2003, 14:55
Спасибо за помощь Armen Khanoyants, Lukasus и derhab