Просмотр полной версии : Проблема с выводом переменной LoadVars в TextArea
Dark Wand
19.10.2009, 22:39
Благодаря Поиску по форуму нашел решение для чтения PHP файла, но не смог вывести получаемое значение в TextArea.
Скрипт запрашивает данные с URL:
var my_lv:LoadVars = new LoadVars();
my_lv.onLoad = function(success:Boolean) {
if (success) {
trace(this.toString());
} else {
trace("Ошибка в загрузке / разборе результирующей строки.");
}
};
my_lv.load("http://info.radiostyle.ru/inc/getinfo.php?getcurentsong=157&mount=paraplanradio");
На выходе в Output получаю желаемую переменную (значение постоянно меняется!):
%20Den%20Haan%20%2D%20Primitive%20Walk%20Mix%20=&onLoad=%5Btype%20Function%5D
Мне необходимо выводить в TextArea надпись формата: Den Haan - Primitive Walk Mix
Помогите советом, пожалуйста
var my_lv:LoadVars = new LoadVars();
my_lv.onLoad = function(success:Boolean) {
if (success) {
for (var variable:String in this)
{
trace(variable + ': ' + this[variable]);
// где variable - имя переменной
// this[variable] - ее значение
}
} else {
trace("Ошибка в загрузке / разборе результирующей строки.");
}
};
my_lv.load("http://info.radiostyle.ru/inc/getinfo.php?getcurentsong=157&mount=paraplanradio");
Dark Wand
19.10.2009, 23:02
Kuruki,
Спасибо, в переменную variable получаю Значение без "%20". Но как мне записать это в TextArea?
Dark Wand
19.10.2009, 23:19
ta.text = variable;
Угу, я тоже так пробывал. Создаю TextArea, делаю Dynamic Text и присваиваю имя "ta"
ta.text = variable;
Но получаю в поле слово: undefined
В момент присвоения данные с сервера еще не загрузились.
Dark Wand
19.10.2009, 23:52
В момент присвоения данные с сервера еще не загрузились.
Посмотрел, что проблема довольно распространенная. Получается что без отгрузки данных (в txt например) синхронности я не добьюсь? И тайм-аут в предлоудере мне не поможет?((((
у вас переменные уже под носом... посмотрите где вы трэйс разместили. Почему он "видит" переменные? Включите мозг
Dark Wand
20.10.2009, 00:43
у вас переменные уже под носом... посмотрите где вы трэйс разместили. Почему он "видит" переменные? Включите мозг
Честно пытался разобраться и результата не добился. Если не сильно раздражаю своей недалекостью, то подскажите решение, пожалуйста.
LoadVars.onLoad
Доступность
Flash Player 6.
Синтаксис
my_lv.onLoad = function(success:Boolean) {
// ваш код
}
Параметры
success Булева величина, показывающая, успешно (true) или нет (false), прошел процесс загрузки.
Возвращает
Булева величина.
Описание
Обработчик события; вызывается, когда загрузка данных методом LoadVars.load()или LoadVars.sendAndLoad(), завершена. Если операция завершена успешно, my_lv содержит загруженные переменные, которые становятся доступны с момента трансляции оповещения о событии.
...........
Трэйс находится как раз в этом обработчике, поэтому знает значения на момент вызова (Он и вызывается после загрузки данных).
Соответственно присвоение значений текстовому полю нужно выполнять в этом обработчике или по крайней мере после наступления этого события
Dark Wand
20.10.2009, 01:31
var my_lv:LoadVars = new LoadVars();
my_lv.onLoad = function(success:Boolean) {
if (success) {
for (var variable:String in this)
{
trace(variable + ': ' + this[variable]);
// где variable - имя переменной
// this[variable] - ее значение
ta.text = variable;
}
} else {
trace("Ошибка в загрузке / разборе результирующей строки.");
}
};
my_lv.load("http://info.radiostyle.ru/inc/getinfo.php?getcurentsong=157&mount=paraplanradio");
Оutput:
Das Moth - Tokio Disko Mix :
onLoad: [type Function]
В итоге получаю в TextArea: onLoad:
Все верно, это имя последней переменной объекта my_lv :). Избавиться от нее можно удалив ее или просто отсеив.
Удалить можно так
my_lv.onLoad = function(success:Boolean) {
delete this.onLoad;
if (success) {
...
}
}
Отсеить так
my_lv.onLoad = function(success:Boolean) {
if (success) {
for (var variable:String in this)
{
if(variable != 'onLoad')
{
ta.text = variable;
}
}
}
}
Ответы на два ваших следующих вопроса:
Чтобы показать все переменные в текст. поле воспользуйтесь оператором +=
ta.text += variable;
Чтобы показать каждую переменную на новой строке воспользуйтесь специальным символом \n
ta.text += variable + '\n';
:)
Dark Wand
20.10.2009, 09:09
Kuruki,
Цены тебе нет:) СПАСИБО!!!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.