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

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

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

Регистрация: Jul 2006
Сообщений: 45
По умолчанию Запуск функции после загрузки ХML-файла

Во внешнем скрипте(php,JS - не принципиально) формируется массив. Как этот массив загрузить во флеш-файл?
в каком виде он должен выводится в скрипте и как читаться флеш-файлом?
Для обычных переменных(строковых, числовых) вроде понятно, а для массива не могу сделать..


Последний раз редактировалось zhalexei; 10.08.2006 в 23:22.
Старый 08.08.2006, 16:21
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Флеш принимает либо стринг либо ХМЛ, так что вариантов не много... формируй либо то либо другое. Если массив относительно небольшой, то можно передавать его одним стрингом с каким-нибудь символом разделяющим элементы массива, если нет - строй ХМЛ...
Пример:
html
Код:
my.swf?myArr=1%23%456%2%45
flash
Код:
var myArr_arr:Array = myArr.split["%"]
__________________
Hell is the possibility of sanity

Старый 08.08.2006, 21:02
zhalexei вне форума Посмотреть профиль Отправить личное сообщение для zhalexei Найти все сообщения от zhalexei
  № 3  
Ответить с цитированием
zhalexei

Регистрация: Jul 2006
Сообщений: 45
Пришлось делать через XML.
Парсинг полчается нормально, вычисляет что нужно правильно(делал по одному из примеров на flasher.ru)
но вот в чем проблема

Код:
myArray = new Array();

doc = new XML();
doc.load("doc.xml");
doc.onLoad = function (success) {
        if (success) {
		...
			myArray.push(value);
		...
	}
}

trace(myArray.length);
На выходе получаю 0.
По всей видимости дело либо в области видимости переменной, либо скорее всего во времени подгрузки файла.
как быть?

Старый 08.08.2006, 21:04
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 4  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
1) сначала doc.onLoad а уж потооооом doc.load("doc.xml");
2) где у тя value?

Старый 08.08.2006, 21:27
zhalexei вне форума Посмотреть профиль Отправить личное сообщение для zhalexei Найти все сообщения от zhalexei
  № 5  
Ответить с цитированием
zhalexei

Регистрация: Jul 2006
Сообщений: 45
1)перестановка мест, вполне естессно ничего не дала
2)value находится в XML-файле

пробовал играть с _global.. не выходит ничего.
может и правда влияет время на загрузку файла?

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Опиши подробнее, что такое value, а еще лучше - дай один нод ХМЛя и полностью функцию, которая его разбирает (парсит), иначе тяжело что-то сказать.
_global тут ни при чем. время никак не влияет, функция прописанная\вызывающаяся в onLoad вызывается тогда, когда весь ХМЛ уже загружен.
Вот тебе рабочий пример, если нужно:
Код:
var mainXML:XML = new XML();
mainXML.ignoreWhite = true;
mainXML.onLoad = function() {
	parseXML_fn(this);
};
mainXML.load("xml2load.xml");
var _arr:Array = [[],[]];
var parseXML_fn = function () {
	var _xml:XML = arguments[0];
	for (var i:XMLNode = _xml.childNodes[0].firstChild; i != null; i=i.nextSibling) {
		_arr[0].push(i.attributes.z);
		_arr[1].push(i.attributes.c);
	}
	trace("Loaded array contains these values: "+_arr);
};
XML
Код:
<m>
<n z="1" c="2"/>
<n z="3" c="4"/>
<n z="5" c="6"/>
<n z="7" c="8"/>
<n z="9" c="0"/>
</m>
__________________
Hell is the possibility of sanity

Старый 09.08.2006, 10:04
RomanASDF вне форума Посмотреть профиль Отправить личное сообщение для RomanASDF Найти все сообщения от RomanASDF
  № 7  
Ответить с цитированием
RomanASDF
 
Аватар для RomanASDF

Регистрация: Aug 2006
Сообщений: 11
Отправить сообщение для RomanASDF с помощью ICQ
zhalexei, если ты засунешь
Код:
trace(myArray.length);
в doc.onLoad, после всех твоих пушей , то я думаю что будет не 0.
Дело во времени загрузки xml файла - onLoad срабатывает позже чем trace

Старый 09.08.2006, 12:56
zhalexei вне форума Посмотреть профиль Отправить личное сообщение для zhalexei Найти все сообщения от zhalexei
  № 8  
Ответить с цитированием
zhalexei

Регистрация: Jul 2006
Сообщений: 45
Цитата:
Сообщение от RomanASDF
zhalexei, если ты засунешь
Код:
trace(myArray.length);
в doc.onLoad, после всех твоих пушей , то я думаю что будет не 0.
Дело во времени загрузки xml файла - onLoad срабатывает позже чем trace
пробовал.давно уже. поэтому и подумал на время загрузки. проблем а в том что в том месте где я поставил
Код:
trace(myArray.length);
должен стоять код который обрабатывает этот массив, а обработаться он не успевает..

Старый 09.08.2006, 20:16
zhalexei вне форума Посмотреть профиль Отправить личное сообщение для zhalexei Найти все сообщения от zhalexei
  № 9  
Ответить с цитированием
zhalexei

Регистрация: Jul 2006
Сообщений: 45
ну есть же наверное какие то способы задержать начало выполнения проги пока не загрузится xml-файл?

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
2 zhalexei:
самое простое - поставь все скрипты на второй кадр, а в doc.onLoad пропиши gotoAndStop(2); =) хотя, это некрасивое решение =) правильно - написать изначально так, чтобы функции читающие что-либо из ХМЛя не вызывались до его загрузки =)
__________________
Hell is the possibility of sanity

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

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

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


 


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


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