Просмотр полной версии : Проблема с Dynamic Text
Во флеш разбираюсь плохо. Весь ваш форум перерыл, но не нашел видимо потому что проблема очень простая. Проблема такая
Создаю мувик (new_2words), в котором присутствуют еще два Graphic Symbol (называются new_1_1 и new_1_2), они перемещаются при помощи Motion Tweening. Каждый из этих Graphic Symbol имеет внутри поле Dynamic Text с переменными w1 и w2.
Я вытаскиваю в первый кадр мувик new_2words, называю его new_mc и в Action Script первого кадра(мне нужно прописывать именно в первом кадре, а не внутрикажжого мувика) прописываю
new_mc.w1.text = "Двухлитровый";
new_mc.w2.text = "двигатель";
И первая переменная считывается нормально , в вторая ( и последующие) не считывается. То есть слово "Двухлитровый" воспроизводится, а двигатель нет. В чем может быть дело?
упрощенный пример положите
может с именами попутали
пример прилагаю
может быть это можно как то проще сделать, но проще не получается.
цель всего этого сделать так, чтобы я мог задавать в скрипте переменные например "Двухлитровый" и "двигатель", или "Литые" и "диски", и запускать один и тот же мувик из ActionScripta (как это сделать я пока тоже не знаю), а не создавать отдельный мувик для каждого словосочетания.
FourSide
30.03.2007, 11:33
В приложенном примере во втором мувике отсутствует Instance имя текстового поля. Я назвал его w2 и всё заработало.
FourSide, точно, спасибо.
У кого есть время, подскажите пожалуйста, как реализовать вот это:
"цель всего этого сделать так, чтобы я мог задавать в скрипте переменные например "Двухлитровый" и "двигатель", или "Литые" и "диски", и запускать один и тот же мувик из ActionScripta (как это сделать я пока тоже не знаю), а не создавать отдельный мувик для каждого словосочетания."
Алгоритм примерно такой:
Есть массив myarray[][], где myarray[1][1] = "Двухлитровый", myarray[1][2] = "двигатель", myarray[2][1] = "Литые" и так далее.
for (i=1; i<5; i++) {
Создаем копию клипа, и размещаем ее в определенных координатах. // не знаю какую функуцию лучше использовать
присваиваем w1 = myarray[цикл][1]; // не знаю запуст
w2 = myarray[цикл][2];
Удаляем клип // если нужно
}
В последнем кадре нашего основного клипа, который мы клонируем ставим stop();
re17, оформите код в своем посте соответствующими форумными тегами.
var myarray = new Array;
myarray[0] = ["Двухлитровый", "двигатель"];
myarray[1] = ["Литые", "диски"];
myarray[2] = ["ABS", "+EBD"];
myarray[3] = ["Гидроусилитель", "руля"];
myarray[4] = ["Автоматический", "кондиционер"];
for (i=0; i<5; i++) {
Создать клип "mc_word"+i с заданными координатами
"mc_word"+i.w1.text = myarray[i][0]; //
"mc_word"+i.w2.text = myarray[i][1];
Удалить клип, если нужно
}
Проблемы в коде
1. Не знаю как лучше создать клип.
2. Не знаю как, правильно склеить "mc_word"+i
3. Нужно ли удалять клип после того как он закончил играть?
4. Как сделать чтобы они играли один за другим, а не все вместе?
re17, кнопка http://flasher.ru/forum/images/russian/style3/buttons/edit.gif справа вверху от каждого поста.
Создать клип "mc_word"+i с заданными координатами
"mc_word"+i.w1.text = myarray[i][0]; //
"mc_word"+i.w2.text = myarray[i][1];
Удалить клип, если нужно
}
mc=this.attachMovie(<linkage клипа в библиотеке>,"mc_word"+i, this.getNextHighestDepth());
mc.w1.text = myarray[i][0]; //
mc.w2.text = myarray[i][1];
this["mc_word"+i].removeMovieClip();
почему то не работает, может кто-нибудь подправит файл?
и еще мне кажется что тут не решена задача чтобы надписи появлялись одна за другой.
1. linkage мувика а не имя! ПКМ-linckage на мувике в библиотеке
2.
mc=this.attachMovie("word1","mc_word"+i, this.getNextHighestDepth());
3. зачем remove тут же написал ? :) он же сразу и удалится
CorC, спасибо!
1. Linkage я поставил.
2. Поправил
3. Remove - убрал
в результате получилось:
var myarray = new Array;
myarray[0] = ["Двухлитровый", "двигатель"];
myarray[1] = ["Литые", "диски"];
myarray[2] = ["ABS", "+EBD"];
myarray[3] = ["Гидроусилитель", "руля"];
myarray[4] = ["Автоматический", "кондиционер"];
for (i=0; i<5; i++) {
mc=this.attachMovie("word1","mc_word"+i, this.getNextHighestDepth());
mc._x = 400;
mc._y = 100;
mc.w1.text = myarray[0][0];
mc.w2.text = myarray[0][1];
mc.gotoAndPlay(1);
//this["mc_word"+i].removeMovieClip();
}
но у меня только первый ролик проигрывается и встает. А последующие не идут.
... = myarray[i][0];
... = myarray[i][1];
//mc.gotoAndPlay(1); не надо...
CorC, опять прошу прощения.
У меня несклько вопросов:
1. Какая именно функция запускает ролик? ведь gotoAndPlay я убрал.
2. если ролик запускает функция attachMovie, то почему переменные указанные ниже задействованы?
3. Как сделать так чтобы все запускалось не одновременно, а ролики следовали один за другим?
1 он сам будет играться после аттача
2 какие переменные? :) из массива
ну дак можно во время ролика что угодно с ним делать...
3 setInterval тут поможет, про нее спрашивать не тут
а в хелпе или в поиске...
CorC, провозился 2 часа, но так и не понял куда нужно вствить SetInterval, чтобы была необходимая задержка. Подскажите, если не трудно, новую тему заводить не хочется.
stop();
var myarray = new Array();
myarray[0] = ["Двухлитровый", "двигатель"];
myarray[1] = ["Литые", "диски"];
myarray[2] = ["ABS", "+EBD"];
myarray[3] = ["Гидроусилитель", "руля"];
myarray[4] = ["Автоматический", "кондиционер"];
var i = -1;
aaa = setInterval(function () {
_root["mc_word"+i].removeMovieClip();
i++;
if (i == 5) {
clearInterval(aaa);
} else {
mc = _root.attachMovie("word1", "mc_word"+i, _root.getNextHighestDepth());
mc._x = 100;
mc._x = 100;
mc.w1.text = myarray[i][0];
mc.w2.text = myarray[i][1];
}
}, 2000);
написал навскидку, за безобразие не ругать :)
CorC, спасибо, все работает. Но от сложности этой задержки у меня уже мозги болят:). Почему во флеш нельзя сделать просто sleep(200); ?
и еще не совсем понял, а зачем нужен stop(); в начале?
"потому что гладиолус" :)
по моему дак нормально, или я просто привык :)
Вы будете смеятся, но после того как я все сделал, то есть добавил в символы w1 и w2, нужные мне переходы, снова перестал отображаться w2.\
Первым делом я проверил подписана ли переменная. Оказалась подписана.
Пробовал добавлять еще один символ w3, однако в него тоже значение переменной не передается.
В чем может быть дело?
И еще небольшой вопрос. При текущей реализаии SetInterval происходит задержка в самом начале. Как от нее избавится?
CorC, глянь пожалуйста, горю :).
PS/ Вопрос по поводу первой задержки SetInterval - решил.
CorC, огромное спасибо, только сегодня до работы добрался. :)
а если можно, поясни пожалуйста, почему у меня в моем примере содержание 2-ой переменной в Dynamic Text не передавалось...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.