Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.09.2008, 14:29
FreshFlashEr вне форума Посмотреть профиль Отправить личное сообщение для FreshFlashEr Найти все сообщения от FreshFlashEr
  № 1  
Ответить с цитированием
FreshFlashEr

Регистрация: Sep 2005
Сообщений: 35
Question XML... Где и что я пропустил?

Три (вопроса) в одном (дабы не плодить кучу тем):
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
2) Скажем, по нажатию кнопки – хочу заменить уже загруженный xml-файл на другой. Как выгрузить (если это возможно)
или заменить один другим (третьим, четвертым) ?

3) Как из XML (точнее, её child-ов) сделать Array? И потом, вот такое:
выдернули значение из Array, показали, удалили (из Array-я) ?

Сорри, если прошу о многом, всё равно, заранее – спасибо!

Старый 22.09.2008, 14:44
amd333 вне форума Посмотреть профиль Отправить личное сообщение для amd333 Найти все сообщения от amd333
  № 2  
Ответить с цитированием
amd333

Регистрация: Sep 2008
Сообщений: 20
1) Скорее всего inside ты видишь позже чем after что говорит о том что у тебя ф-ция
processXML отрабатывает позже чем trace(after) естественно что и в переменную истинное значение устанавливается позже.
2) присваиваешь одной и той же переменной, а сборщик мусора при потре ссылки удалит.
3) for.... я бы наверное делал так, но что скажут авторитеты?.....
__________________
90% проблем решаются сами собой, а 10% попросту неразрешимы

Старый 22.09.2008, 15:07
FreshFlashEr вне форума Посмотреть профиль Отправить личное сообщение для FreshFlashEr Найти все сообщения от FreshFlashEr
  № 3  
Ответить с цитированием
FreshFlashEr

Регистрация: Sep 2005
Сообщений: 35
Спасибо, конечно. Да мне б, поподробнее немножко... Не то, чтоб тупой, скорее, новенький в этом деле. (Вот и тему, наверное, не в нужный раздел закинул)
1) Так как же её делать ? Почему, выходя из функции загрузки XML переменная не меняет значение на новое?
2) То есть по нажатию кнопки опять полностью прописывать процедуру загрцзки нового XML-файла?
3) вообще не понимаю (пока). Ньюб ещё...

Старый 22.09.2008, 15:24
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Цитата:
3) Как из XML (точнее, её child-ов) сделать Array? И потом, вот такое:
выдернули значение из Array, показали, удалили (из Array-я)?
Вопрос, зачем. Как правило это не нужно, и проще пользоваться XMLList,
Но, если просто из спортивного интереса...
Код:
var xml:XML = 
<xml>
	<node attr="1"/>
	<node attr="2"/>
	<node attr="3"/>
	<node attr="4"/>
	<node attr="5"/>
	<node attr="6"/>
</xml>;
var array:Array = [];
xml.*.(array.push(xml.*[array.length]));
for each(var xl:XML in array) trace(xl.toXMLString());
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 22.09.2008 в 15:33.
Старый 22.09.2008, 15:35
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 5  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Код:
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
,Прикол = Да уж... прикол так прикол
*/

Старый 22.09.2008, 15:36
FreshFlashEr вне форума Посмотреть профиль Отправить личное сообщение для FreshFlashEr Найти все сообщения от FreshFlashEr
  № 6  
Ответить с цитированием
FreshFlashEr

Регистрация: Sep 2005
Сообщений: 35
Спасибо всем !
Тааак... догоняю (по-тихоньку)...
Второй вопрос снимается (если для XML не надо ничего выгружать/чистить вручную).

И я так понял, что только из Array-я можно сделать такой фокус как: "выдернуть-показать-удалить" ?

Хотябы маленькая подсказочка по первому вопросу (как сохранить значение переменной из XML-загрузчика) ??


Последний раз редактировалось FreshFlashEr; 22.09.2008 в 16:36.
Старый 22.09.2008, 17:01
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 7  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Пользоваться переменной после слова
Код:
trace("inside ="+ endVal); // видим ТО ЧТО НАДО !

Старый 22.09.2008, 17:22
FreshFlashEr вне форума Посмотреть профиль Отправить личное сообщение для FreshFlashEr Найти все сообщения от FreshFlashEr
  № 8  
Ответить с цитированием
FreshFlashEr

Регистрация: Sep 2005
Сообщений: 35
Цитата:
Сообщение от Alex Lexcuk Посмотреть сообщение
Пользоваться переменной после слова
Мда... видимо, маленькой подсказочкой не обойтись.
А... какой переменной и после какого слова ?
...Ну ОЧЕНЬ хочу разобраться...

Старый 22.09.2008, 18:09
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 9  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Для начала читаем документацию тут:
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.
Старый 22.09.2008, 19:01
FreshFlashEr вне форума Посмотреть профиль Отправить личное сообщение для FreshFlashEr Найти все сообщения от FreshFlashEr
  № 10  
Ответить с цитированием
FreshFlashEr

Регистрация: Sep 2005
Сообщений: 35
Спасибо!
...пошёл учить (мат.часть)

Создать новую тему Ответ Часовой пояс GMT +4, время: 11:49.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 11:49.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.