![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2006
Сообщений: 5
|
доброго вам времени суток.
У меня такая проблема. Из хмл файла грузится в мувик текст, который потом рассовывется в массив. Задача заключается в том, чтобы брать текст из массива по порядку и вставлять его в динамическое текстовое поле, после этого двигать это поле. У меня на этом этапе произошла загвоздка. Получилось так, что у меня .onEnterFrame один вложен в другой, в первом я изменяю переменную для того, чтобы выбирать из массива, а во втором .onEnterFrame у меня происходит движение текстового поля. Проблемма заключается в том, что я никак не могу выйти из второго .onEnterFrame, он у меня сидит в мною определенной функции, но по return функция никак выходить не хочет. Подскажите, что делать. |
|
|||||
|
Код покажи.
__________________
Давайте отбросим факты, чтобы увидеть суть |
|
|||||
|
Регистрация: Jun 2005
Адрес: Moscow - immigrate from Volgodonsk
Сообщений: 2,534
|
жесть, зачем onEnterFrame пользовать?...делай delete onEnterFrame;
а вообще пользуй setInterval() |
|
|||||
|
Регистрация: Jul 2006
Сообщений: 5
|
function startT(success) {
if (success == true) {
rootNode = myXML.firstChild;
XMLParsing(rootNode);
_root.onEnterFrame = function() {
if (lang == undefined) {
lang = 2;
}
running_string(txtarray[lang][str_param], 200, 200, 5, 20, clrarray[lang][str_param]);
str_param += 1;
};
}
}
function running_string(str_var:String, x_coord:Number, y_coord:Number, x_diff:Number, f_size:Number, str_color:String) {
t_field._x = x_coord;
this.onEnterFrame = function() {
trace(str_var);
with (this) {
createTextField("t_field", this.getNextHighestDepth(), x_coord, y_coord, 10, 10);
t_field.autoSize = true;
t_field.selectable = false;
t_field.text = str_var;
t_field._x -= x_diff;
}
var my_fmt:TextFormat = new TextFormat();
with (my_fmt) {
bold = true;
size = f_size;
color = str_color;
font = "Tahoma";
}
this.t_field.setTextFormat(my_fmt);
if ((this.t_field._x+this.t_field._width)<x_coord) {
return true;
}
};
}
![]() Последний раз редактировалось CloudTEmple; 04.07.2006 в 16:10. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
В обоих случаях у вас onEnterFrame вешается на _root. И соотвественно при вызове running_string вы один onEnterFrame замещаете другим.
Я правда не понял что вы такое хитрое делаете и setInterval() тут тоже не к селу ни к городу. |
|
|||||
|
Регистрация: Jul 2006
Сообщений: 5
|
да, сетинтервал не подходит... В общем, сточки должны одна за другой по порядку проплывать вдоль мувиклипа. str_param += 1; как раз отвеччает за это.
txtarray[lang][str_param] - массив определен в функции XMLParsing . он тут сейчас не у дел, потому я его не выкладывал. Массив двумерный, строчки должны быть на нескольких языках, в зависимости от нажатия кнопки в мувике будут браться различные сточки. а куда мне его вешать, onЕnterFrame этот? Пытался создать пустой мувиклип и в него загнать текстфилд, но там тоска, ни один из циклов не ждет другого. Зы, а почему return не работает? Ведь написано: "Команда return останавливает выполнение функции и заменяет ее на возвращаемое значение." Последний раз редактировалось CloudTEmple; 04.07.2006 в 16:35. |
|
|||||
|
Регистрация: Jul 2006
Сообщений: 5
|
Я придумал схему, правда она не совсем работет. Создал мувиклип, в нем создал текстовое поле. далее
_root.onEnterFrame = function() {
if (lang == undefined) {
lang = 2;
}
my_string = txtarray[lang][str_param];
_root.attachMovie("text_mc", newtext, this.getNextHighestDepth(), {_x:100, _y:100});
str_param += 1;
if (str_param == txtarray[lang].length){
str_param = 0;
}
};
}
}
вопрос, как мне остановить _root.onEnterFrame = function() вот это, чтобы attachMovie останавливался и ждал пока не проиграет мувик?? |
|
|||||
|
Регистрация: Jul 2006
Сообщений: 5
|
все разрешилось
![]() Последний раз редактировалось CloudTEmple; 12.07.2006 в 20:15. |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:38. |
|
|
« Предыдущая тема | Следующая тема » |
|
|