PDA

Просмотр полной версии : загрузка параметров - почему не работает?


TryToBeASuperStar
06.07.2005, 16:33
Привет,



Прежде всего прошу не стирать тему (я сам её удалю как только получу ответ, если уж это так сильно засоряет форум), а также не хихикать и не стебаться, т.к. все когда-то начинают.


Есть mc и params.txt. Нужно загрузить параметры из текстового файла и в соответствии с ними продублировать и разместить (X,Y) мувиклип mc.

params.txt:
mcN=2&Y1=200&X1=-200&X2=30&Y2=-100&TestText=done&

загрузка в первом кадре сцены:
loadVariables("params.txt", this);

второй кадр сцены:
for (Temp=1; Temp<mcN; Temp++) {
duplicateMovieClip(_root.mc, "mc" + Temp, Temp);
setProperty ("mc" + Temp, _x, X + Temp);
setProperty ("mc" + Temp, _y, Y + Temp);
};

Или:
setProperty (_root.mc, _x, X1);
setProperty (_root.mc, _y, Y1);

Ничего не происходит - mc как стоял один на своём месте, так и стоит, ни дублированных клипов, ни передвижения первого нет.

Я бы начал грешить на загрузку... но в эту же сцену вставлено динамическое текстовое поле TestText, так оно всегда правильно отображает "done".

Где ошибка? Помогите сделать правильно, плиз.

KidsKilla
06.07.2005, 16:35
stop();
loadVariables("params.txt", this);
this.onData = function(){
this.play()
}

TryToBeASuperStar
06.07.2005, 17:04
спасибо. заработало.

непонимаю почему... ???

вы не могли бы объяснить подробно...

TryToBeASuperStar
06.07.2005, 17:13
ещё хочу уточнить - можно ли как-нибудь разбить по строкам текстовый файл, чтобы через год, когда там будет несколько листов переменных можно было легко ориентироваться???

KUZEN
06.07.2005, 17:17
разбивай а потом парси через "\n"

TryToBeASuperStar
06.07.2005, 17:24
KUZEN
К сожалению, я не понял смысла этой фразы. Можно по-подробнее, пожалуйста.


Кстати вовращаясь к началу... дублирование работает, но перемещение не работает. :(

Так НЕ работает:
setProperty ("mc" + Temp, _y, "Y" + Temp);

Так работает:
setProperty ("mc" + Temp, _y, Y2);

Так смещает на значение Temp (1,2,3,4...):
setProperty ("mc" + Temp, _y, Y + Temp);


В чём ошибка?

Аркади
06.07.2005, 17:33
переменные не успевают подгрузится
поэтому надо ждать загрузки, а потом к ним обращаться

TryToBeASuperStar
06.07.2005, 18:16
Ну а сейчас-то почему не работает перемещение объекта???
setProperty ("mc" + Temp, _y, "Y" + Temp);
Просто получаю три mc на одно месте, ни один не сдвигается

???

dilsh
06.07.2005, 18:22
ты побольше кавычек ставь
"y" энто же строка а не цихра
или это переменная типа Y1 Y2 если так
то кажись ты все через цикл делаешь наверное
во флеше циклы не катят
кидай исходник

KUZEN
06.07.2005, 18:27
ты побольше кавычек ставь
"y" энто же строка а не цихра
или это переменная типа Y1 Y2 если так
то кажись ты все через цикл делаешь наверное
во флеше циклы не катят
кидай исходник
Что значит циклы не катят, без них во флеше вообще никуда

dilsh
06.07.2005, 18:52
я имею ввиду если поставишь фор и от 1 до 100
и внутри муви._икс=ай
ты ж не получишь плавного передвижения
если вообще получишь

KUZEN
06.07.2005, 18:55
а собственно причём тут циклы и плавное движение

dilsh
06.07.2005, 19:00
товарищь меняет значение ихрик т.е. Y у мувиклипа (см. выше)
предположение №1) он пытается его двигать
я и допустил что он сдела как в моем примене выше
засунул его в цикл
предположение №2) т.к. в прогах такие как делпхи вб и си делается с пом. цикла
то и здесь пытается сделать тоже самое

TryToBeASuperStar
06.07.2005, 19:12
В самом начале всё подробно написано.

Координаты берутся из текстовика (X1, X2, Y1, Y2).

В текстовике:
mcN=2&Y1=200&X1=-200&X2=30&Y2=-100&TestText=done&

Код:
for (Temp=1; Temp<mcN; Temp++) {
duplicateMovieClip(_root.mc, "mc" + Temp, Temp);
setProperty ("mc" + Temp, _x, "X" + Temp);
setProperty ("mc" + Temp, _y, "Y" + Temp);
};

Если вместо ["X" + Temp] и ["Y" + Temp] написать просто [X1] и [Y1], то всё работает ок.

(Всё это уже было написано выше.)

Не понимаю почему не работает передвижение новых mc ???

dilsh
06.07.2005, 20:14
просили же исходник кидай

TryToBeASuperStar
06.07.2005, 20:18
вот.

только очень прошу объяснить где именно и что именно неправильно.

заранее спасибо.

dilsh
06.07.2005, 21:49
лучше сравни со своим старым
поймеш
в основном насколько помню
не работало это "Y"+Temp она у тя стринговая получалась
нужно было либо эвалом либо дисом

TryToBeASuperStar
06.07.2005, 22:42
Здорово, спасибо, только у меня почему-то не открывается.

Наверно версия Flash не та... у меня стоит FlashMX.

Можно под него?
Или прямо текстом тут...

dilsh
06.07.2005, 22:47
открывается?

TryToBeASuperStar
07.07.2005, 00:08
ОК, всё заработало только с таким видом обращения к переменным (X1,Y1):
setProperty("point"+Temp, _y, this["Y" + Temp]);

Вот такой он Flash - загадочный %)

Спасибо всем за участие.
Отдельное большое спасибо dilsh.
================================


Осталось два мааленьких вопроса по этой теме:
2. Как всё же разбивать данные в текстовом документе на разделы для удобства поиска и редактирования? (простой перенос по строкам не катит, т.к. переменные не считываются) Что за параметр /n ???
3. После окончания дублирования точек, при наведении на них, поверх будет появляться подсказка. Для каждой точки - свой текст из того же текстовика (data.txt). Как это реализовать??? Я вижу два варианта: а) использование конструктива для определения на какую точку сейчас наведена мышка, типа [onRollover{[name(this) - "point"} show mc_ballon] (как кстати это писАть?); б) при дублировании как-то сразу передовать каждому созданному клипу его порядковый номер (или даже весь всплывающий текст), который не надо будет в последствии вычислять.

Посоветуйте, пожалуйста.