![]() |
Запуск функции после загрузки ХML-файла
Во внешнем скрипте(php,JS - не принципиально) формируется массив. Как этот массив загрузить во флеш-файл?
в каком виде он должен выводится в скрипте и как читаться флеш-файлом? Для обычных переменных(строковых, числовых) вроде понятно, а для массива не могу сделать.. |
Флеш принимает либо стринг либо ХМЛ, так что вариантов не много... формируй либо то либо другое. Если массив относительно небольшой, то можно передавать его одним стрингом с каким-нибудь символом разделяющим элементы массива, если нет - строй ХМЛ...
Пример: html Код:
my.swf?myArr=1%23%456%2%45Код:
var myArr_arr:Array = myArr.split["%"] |
Пришлось делать через XML.
Парсинг полчается нормально, вычисляет что нужно правильно(делал по одному из примеров на flasher.ru) но вот в чем проблема Код:
myArray = new Array();По всей видимости дело либо в области видимости переменной, либо скорее всего во времени подгрузки файла. как быть? |
1) сначала doc.onLoad а уж потооооом doc.load("doc.xml");
2) где у тя value? |
1)перестановка мест, вполне естессно ничего не дала
2)value находится в XML-файле пробовал играть с _global.. не выходит ничего. может и правда влияет время на загрузку файла? |
Опиши подробнее, что такое value, а еще лучше - дай один нод ХМЛя и полностью функцию, которая его разбирает (парсит), иначе тяжело что-то сказать.
_global тут ни при чем. время никак не влияет, функция прописанная\вызывающаяся в onLoad вызывается тогда, когда весь ХМЛ уже загружен. Вот тебе рабочий пример, если нужно: Код:
var mainXML:XML = new XML();Код:
<m> |
zhalexei, если ты засунешь
Код:
trace(myArray.length);Дело во времени загрузки xml файла - onLoad срабатывает позже чем trace |
Цитата:
Код:
trace(myArray.length); |
ну есть же наверное какие то способы задержать начало выполнения проги пока не загрузится xml-файл?
|
2 zhalexei:
самое простое - поставь все скрипты на второй кадр, а в doc.onLoad пропиши gotoAndStop(2); =) хотя, это некрасивое решение =) правильно - написать изначально так, чтобы функции читающие что-либо из ХМЛя не вызывались до его загрузки =) |
Цитата:
|
Код:
XML.onLoad = function(){ |
Цитата:
|
Код:
XML.onLoad = function(){ |
а что это даст? функция работает правильно, парсинг XML тоже правильный.
все что мне нужно это запустить мою функцию ПОСЛЕ полной загрузки XML, не помещая её в onLoad и не пользуясь переходом на следующий кадр |
почему "не помещая её в onLoad"??? ты сам понимаешь чего ты хочешь то???
|
да. понимаю. помещая в onLoad
Код:
XML.onLoad = function(){а вот в таком случае Код:
XML.onLoad = function(){ |
а это рой уже свою ф-цию. онЛоад тут ни разу ни при чём.
|
факт есть факт. вне онЛоада функция работает. оптимизировал на мой взгляд по максимуму :)
судя по форуму не я один с такой проблемой сталкивался, вот только решения я не нашел.. |
Цитата:
+ тут не форум телепатов и почему у тя так пашет а так нет вряд ли кто скажет. |
я не спрашиваю почему так я спрашиваю как сделать так чтобы функция начала выполняться ПОСЛЕ загрузки ХМЛя но не в онЛоаде..вот и всего...
|
Цитата:
|
решения не может не быть :)
подождем других вариантов :) |
Цитата:
|
Код:
var sender:LoadVars = new LoadVars();Не смотря на то, что приведенный выше код работает, рекомендую использовать это только чтобы пугать знакомых =) Зато onLoad не используется %) |
Цитата:
|
2 KidsKilla:
Это про эзброадкастер чтоли? Та ну... прям такое уж и зло... была еще задуамка переписать все то же самое в командах ассамблера (под компайлер от Флазма), но я сломался %) Да, вот еще есть смешное решение - создаем мувик из двух кадров, кладем его на главную сцену и на обоих кадрах пишем скрипт проверяющий статус загружаемого ХМЛя (я уже не помню, то ли 6 то ли 0 - загружен без ошибок), как только статус нас устраивает - переходим у выполнению всего остального =) сейчас попробую сделать пример, посмотрим, как оно будет работать =) |
зло не в асБродкастер, а в том что ты это вываливаешь на обозрение неподготовленным умам =)))
|
Код:
if (_root.myXML_xml.status == 0 && _root.myXML_xml.toString().length>1) {Код:
var myXML_xml:XML = new XML();Даже не знаю, какой способ более извращенный %) ЗЫ. для неподготовленных умов был нормально работающий скрипт еще на первой странице - а если кому-то хочется извращенных отношений со своим ХМЛем - так я не против =) ЗЫЫ. Даже обшивку в машине можно поменять не открывая, например так: 1. откутить заднее колесо 2. снять колпак 3. похудеть на столько, чтобы можно было пролезть через получившееся отверстие в багажник 4. вскрыть консервным ножем перегородку между багажником и салоном... |
Цитата:
|
| Часовой пояс GMT +4, время: 01:10. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.