![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2005
Сообщений: 35
|
Три (вопроса) в одном (дабы не плодить кучу тем):
1) Нормально гружу xml, практически, можно с ней работать, но: как сохранить переменную из xml-загрузчика? так не идёт ![]() (здесь load)... а вот потом...
var endVal:uint = 10; //как пример,(можно и не задавать начальное)
trace("before =" + endVal); // видим 10
function processXML(event:Event):void {
theXML = new XML(event.target.data);
endVal = theXML.elements().length();
trace("inside ="+ endVal); // видим ТО ЧТО НАДО !
}
trace("after ="+ endVal); // опять видим 10
или заменить один другим (третьим, четвертым) ? 3) Как из XML (точнее, её child-ов) сделать Array? И потом, вот такое: выдернули значение из Array, показали, удалили (из Array-я) ? Сорри, если прошу о многом, всё равно, заранее – спасибо! |
|
|||||
|
Регистрация: Sep 2008
Сообщений: 20
|
1) Скорее всего inside ты видишь позже чем after что говорит о том что у тебя ф-ция
processXML отрабатывает позже чем trace(after) естественно что и в переменную истинное значение устанавливается позже. 2) присваиваешь одной и той же переменной, а сборщик мусора при потре ссылки удалит. 3) for.... я бы наверное делал так, но что скажут авторитеты?.....
__________________
90% проблем решаются сами собой, а 10% попросту неразрешимы |
|
|||||
|
Регистрация: Sep 2005
Сообщений: 35
|
Спасибо, конечно. Да мне б, поподробнее немножко... Не то, чтоб тупой, скорее, новенький в этом деле. (Вот и тему, наверное, не в нужный раздел закинул)
1) Так как же её делать ? Почему, выходя из функции загрузки XML переменная не меняет значение на новое? 2) То есть по нажатию кнопки опять полностью прописывать процедуру загрцзки нового XML-файла? 3) вообще не понимаю (пока). Ньюб ещё... ![]() |
|
|||||
|
Modus ponens
|
Цитата:
Но, если просто из спортивного интереса...
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 22.09.2008 в 15:33. |
|
|||||
var my_xml:XML;
my_xml = <params>
<Tom>23 years old</Tom>
<Bill>24 years old</Bill>
<Cat>4 years old</Cat>
<Dog>1 years old</Dog>
<Pigi>100 years old</Pigi>
<Прикол> Да уж... прикол так прикол </Прикол>
</params>
var i:int;
var time_out_xml:XML;
var name_string:String;
var x_arr:Array = new Array();
for (i=0; ; i++)
{
time_out_xml = XML(my_xml.child(i).toXMLString());
name_string = time_out_xml.name();
if (name_string==null) break;
x_arr.push(String(name_string+" = "+my_xml.child(name_string)+'\n'));
}
trace(x_arr);
/*OUTPUT
Tom = 23 years old
,Bill = 24 years old
,Cat = 4 years old
,Dog = 1 years old
,Pigi = 100 years old
,Прикол = Да уж... прикол так прикол
*/
|
|
|||||
|
Регистрация: Sep 2005
Сообщений: 35
|
Спасибо всем !
Тааак... догоняю (по-тихоньку)... Второй вопрос снимается (если для XML не надо ничего выгружать/чистить вручную). И я так понял, что только из Array-я можно сделать такой фокус как: "выдернуть-показать-удалить" ? Хотябы маленькая подсказочка по первому вопросу (как сохранить значение переменной из XML-загрузчика) ?? Последний раз редактировалось FreshFlashEr; 22.09.2008 в 16:36. |
|
|||||
|
Регистрация: Sep 2005
Сообщений: 35
|
Мда... видимо, маленькой подсказочкой не обойтись.
А... какой переменной и после какого слова ? ![]() ...Ну ОЧЕНЬ хочу разобраться... |
|
|||||
|
Modus ponens
|
Для начала читаем документацию тут:
http://www.ecma-international.org/pu...s/Ecma-357.htm Это то, что касается E4X. Дальше читаем про синхронное и асинхронное выполнение кода тут: http://en.wikipedia.org/wiki/Asynchronous_I/O (Asynchronous Input/Output processing) В двух словах: вы не вызываете функцию, в которой обрабатывается ХМЛ, она вызывается другим, инициированом вами процессом, но, этот процесс выполняется независимо от выполнения основного потока (вашего кода), это значит, что эта функция может, и скорее всего будет вызвана после выполнения блока кода, который ее описывает, возможно, много позже. Поэтому значение переменной, присваемое функцией, будет присвоено тогда, когда эта функция будет вызвана, а не тогда, когда вы захотите узнать, какое значение ей могло быть / может быть / может быть будет присвоено.
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 22.09.2008 в 18:15. |
|
|||||
|
Регистрация: Sep 2005
Сообщений: 35
|
Спасибо!
![]() ...пошёл учить (мат.часть) ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:58. |
|
|
« Предыдущая тема | Следующая тема » |
|
|