PDA

Просмотр полной версии : Опять динамические переменные)


Menangen
19.10.2007, 01:44
Привет всем! Сегодня на очереди вопрос про AS 1.0 для FMS (flash media server).

Динамические переменные можно задать так:

for (var i = 0; i < 3; i++) {
set("caption" + i, "this is caption " + i);
}
// Будут созданы переменные caption0, caption1, caption2.

Это ладно, всё понятно, всё привычно. Теперь как вывести эти переменные так же, динамически с помощью цикла for?

Вот это вот НЕ работает:

for (var i = 0; i < 3; i++) {
trace(caption[i]);
}

Т.к., сами понимаете, ищет массив caption, и в нём пытается перебрать элементы под порядковыми номерами i.

Чё делать?

Ну, а ещё проблема чуть хуже, мне надо вывести не только дин. переменные, но и динамически свойства объекта my_lv

my_lv = new LoadVars();
my_lv.load("http://localhost/site/test2.php");
my_lv.onLoad = function(success) {
if (success) {
k = this.toString();
//Convert the variable string to properties
my_lv.decode(k);

tracer();

} else {
trace("Error loading/parsing LoadVars.");
}

};

Вобщем, после этого сценария у объекта my_lv появляются свойства, типа:

-если загрузили: &name=escaper& , то:

my_lv.name == escaper;
где name - свойство у my_lv;

Но я, конечно же, гружу пар так 10 переменных: name0, name1, name2, ... из test2.php.

И конвертирую их в свойства:
my_lv.name0
my_lv.name1
my_lv.name2
my_lv.name3...

Как теперь считать эти свойства циклом for? my_lv.name[i] не прокатывает.

Надеюсь, вам интересно )! Буду благодарен за любую помощь. FMS стоит 2.0. Там добавили класс LoadVars() для загрузки переменных из скриптов, txt и т.п.

Сейчас, уже, побившись над этим всем, начал рыть вторую дорогу, через XMLSocket..=))

udaaff
19.10.2007, 02:54
// задаем свойства
for (var i = 0; i<3; i++) {
//set("caption"+i, "this is caption "+i);
this["caption"+i] = "this is caption "+i

}
// выводим в output
for (var i = 0; i<3; i++) {
trace(this["caption"+i])

}
for (var i = 0; i<3; i++) {
trace(my_lv["name"+i])

}

iNils
19.10.2007, 03:37
Menangen, для оформления своего кода, надо использовать теги . Исправляйте.

etc
19.10.2007, 11:06
В разделе «AS1/AS2 для Профессионалов» запрещен код с использованием устаревших конструкций.

terbooter
19.10.2007, 12:15
Не знаю как там FMS2.0 поживает,
но у меня в FCS1.0 -)))
вот так создаются динамические переменные

application.onAppStart=function()
{
application.caption=[];
trace("application.onAppStart!!!!")
for (var i = 0; i < 3; i++) {
//("caption" + i, "this is caption " + i);
application.caption["ttt"+i]="this is caption " + i
}


for (var i = 0; i < 3; i++) {

trace(i);
trace(application.caption["ttt"+i]);
}

for (var i in application.caption )
{
trace(i+" "+application.caption[i])
}
}

Menangen
21.10.2007, 19:26
Menangen, для оформления своего кода, надо использовать теги code /code. Исправляйте.

Да, извини. Просто я картинки отключил и в Опера криво вышла форма для отправки сообщения. Я искал теги code /code и не нашёл. Далее буду внимателен, спасибо.

__etc, ok, только опривыкаю к форуму ))

terbooter, udaaff - спасибо за хэлп. ) ща бум внедрять =)

// А FMS2.0 поживает отлично - исправлены баги с передачей потокового mp3 (этот баг был в FCS 1.5.). Я как-то писал аппли для прослушки потокового mp3, и нифига не работало. Бился 3 дня. Как дурак. И так крутил, и эдак. Потом уже случайно, через неделю заглянул на Адоб. И на тебе. Баг... Т.ч, ребят, не забывайте: бывает, ошибаются и "другие" программисты. Т.ч., если есть возможность - качай free FMS 2.4 (она доступна на адобе для общего слива) - гораздо более удобная консоль, есть классы по отслеживанию статистики твоего приложения, XML, LoadVars, EDGE сервера и всё такое... привычное нам.