PDA

Просмотр полной версии : Telltarget и строки


Nixa
26.03.2002, 18:27
Есть такой код

for (i=1; i<=5; i++) {
if ((eval("id" add i)) == 1) {

tellTarget (" \"Mov\" add i ") {
gotoAndStop (1);
}
}
Идея такая
например если мы нашли, что id4=1, то переходим на mov4 и останавливаемся на 1 кадре

но это не работает. Вся проблема в telltarget-е. Это я знаю

подскажите, если не лень :)) что тут исправить

xbor
26.03.2002, 18:32
for (i=1; i<=5; i++) {
if ((eval("id" add i)) == 1) {
mov.i.gotoAndStop (1);
}
}

Nixa
26.03.2002, 19:16
сенк

Nixa
27.03.2002, 12:37
Товарищи! Павильно ли я понимаю
на самом деле надо делать так
for (i=1; i<=5; i++) {
if ((eval("id" add i)) == 1) {
_root.mov.i.gotoAndStop (1);
}
}
(у меня мувики все на основной сцене)
но опять же, не понятно как получается имя
мне то нужно например
_root.mov2.gotoAndStop (1);
или
_root.mov5.gotoAndStop (1);

а не

_root.mov.5.gotoAndStop (1);


не работает вобщем:(

xbor
27.03.2002, 12:49
Так бы сразу и говорил, я то по твоему (" \"Mov\" add i " ) коду писал (mov.i.gotoAndStop ). Если тебе нужно обратиться к Mov1..Mov5, то код будет такой:

for (i=1; i<=5; i++) {
if ((eval("id" add i)) == 1) {
nName=eval("mov"+i);
_root.nName.gotoAndStop (1); // если действительно эти клипы лежат в основной линейке
}
}

Nixa
27.03.2002, 13:23
спасибо:) по-моему работает,
id переменные при нажатии на мувики меняются
только еще один вопрос
весь этот цикл у меня вставлен в
on(press){

if{
....//проверка на то, какой мувик запущен и его остановка
"id"+i = 0; // приравниваю к нулю id только что остановленного мувика


id4=1; // ставлю флаг, что запустился другой мувик

// потом собственно иду и играю этот 4-ый мувик
tellTarget ("_level0:mov4") {
gotoAndPlay (2);
}
}

он не играется.
У меня возникают догадки, что может быть как-то цикл обнуляет только что объявленную переменную id4?

xbor
27.03.2002, 13:28
Напиши полный код (который не работает), а еще лучше исходник.

Nixa
27.03.2002, 13:35
например для кнопки с id=3

on (press, release) {
//цикл проверки
for (i=1; i<=5; i++) {
if ((eval("id" add i)) == 1) {
nName = eval("mov"+i);
_level0:nName.gotoAndStop(11);
eval("id"+i) = 0;
}
}
//наш мувик рабочий
_level0:id3 = 1;
//должен играть, пока я не нажму на другую кнопку
tellTarget ("_level0:mov3") {
gotoAndPlay (1);
}
}

Nixa
27.03.2002, 13:38
а да.. все переменные у меня определены в слое сцены
поэтому я как понимаю, путь до них _level0:имя

xbor
27.03.2002, 14:19
Не пользуйся таким синтаксисом, он уже давно морально устарел. Пиши:

_root.имя_клипа.gotoAndStop(кадр);

Проблем меньше будет и код более читабелен.

Nixa
27.03.2002, 14:33
Да у меня книжка Грибова по Flash4
Я там -Основы- черпаю:)