Просмотр полной версии : Куча вопросов по XML и Flash
MagicMax
14.12.2001, 17:19
1 - Подскажите примеры работы Flash с XML (исходники, ссылки ...).
2 - Подскажите как переходить во Flash в XML с элемента на элемент.
3 - Как считывать значения и атрибуты из XML`a в Flash-файле?
4 - Быстро ли происходит обработка Flash`ем XML`а?
5 - Стоит ли вообще связывать Flash с XML`ом или лучше связка ASP+XML которые передают данные во Flash ?Хочу из Б.Д. с помощью ASP тянуть данные, потом в ASP же переводить эти данные в XML и считывать их из Flash. И как закэшировать XML на компупере клиента,если я таким образом буду делать не подскажите?
Заранее спасибо!
;)
3.
щяс будим читать вот такой ХМЛ документ
<news id="S.King">
<entry id="0" date="14-12-2001 20:20" author="Steaven King" title="Riding the bollet">
Nice book! YO!</entry>
a. документ наза загрузить сначяла
doc = new XML();
doc.load("booklib.xml");
//-- создаем новый объект бла-бла-бла.. все такое
if(!doc.loaded) gotoAndPlay(2);
// - - вот полезная штука можно без нее но проглбчит обязательно.
var node=doc;
if(node.firstChild!=null) {
node=node.firstChild;
while(node!=null && node.nodeName==null) {
node=node.nextSibling;
}
node=node.firstChild; while(node!=null) {
if(node.nodeName!=null){
date=node.attributes.date;
author=node.attributes.author;
title=node.attributes.title;
tex=node.firstChild.nodeValue;
слева типа динамик текстфиелды... справа названия атрибутов.. не обязательно называть однаково но так логичней.
результатом как можно предположить будет = значения атрибутов соотвецтвенно %). код тупой и простой. должен работать по идее.
}
node=node.nextSibling;
}
}
stop();
4- не так то и быстро.. тут у нас проблемка... состоит она в том что флеш плееры версии ниже 5. 42 .. кароче баг присутствует. приходиться писать весь код (ХМЛ)в одну строчьку. или написать фуннкцию которая будет убирать все пробелы переходы каретки вайтспейсы...
эту штуку конечно же починили хлопци из ММ игнорВайт= тру; но пойти угадай какая версия плеера будет у пользователя. Так вот когда дело доходит до того что твоей функцией надо почистить достаточно большой ХМЛ файл то в результате плеер запнеться и выдасть сообщение об ощибке... мол начинаю тормозить.. вошел в штопор и висеть буду долго. но эо тоже можно исправить.
5- да! да и еще раз да! ты все правильо понял. тока проблема тут состоит в том не как закешировать.. а как предотвратить кеширование. ;) но это тоже можно решить..
MagicMax
17.12.2001, 15:12
Вот ето Ответ! Не Ответ, а Ответище!
Огромаднейшее спасибо!
Про кэширование XML на компе клиента - поясняю : Дело в том, что мне надо закэшировать кое какие данные, которые стопудово не будут изменяться, причем эти данные будут в XML-файле и довольно большого объема (элементов 300-400). Ну понятно, чтоб пользователь не подгружал несколько раз одни и те же данные.
Про перевод каретки... У меня Firstchild выдавал null... Я долго не мог понять из-за чего ето, но Ваш ответ все объяснил. Хотя я нашел способ считать данные и из атрибутов и из полей элементов и переходить между ними. (XMLObject.ChildNodes[i] ... XMLObject.ChildNodes[i+1] с комбинацией NodeValue, NodeName и т.д.)
Для того, чтоб плеер не тормозил думаю чистить символы перевода каретки в ASP а потом только передавать одной строкой во флеш.
И есче - где мне можно почитать (книги, ссылки) про XML в Flash? В частности - как вставить новый элемент, что нибудь про XMLSocket, SendAndLoad и т.д...
Заранее спасибо! ;)
edgoddog
22.12.2001, 07:43
версия плэйера указывается в HTML и это не гарантия что
броузер запросит в MM необходимую версию??
а как прописать версию 5.42 CAB я уже скачал и информации как нет?
работаю в корпоративной сети поэтому добраться до MM нет возможности
MagicMax
24.12.2001, 11:59
Как я понимаю решением проблемы с версией плейера и тормозами с XML все таки будет выстраивание XML кода в одну строку без пробелов и символов возврата каретки. Закачка плейера с Макромедии - не решение.
edgoddog
25.12.2001, 06:41
почему работа клиента на корректной версии не решает проблемы
а XML с человеческим лицом ?
плохо ли смотреть и править XML в блокноте ?
\\почему работа клиента на корректной версии не решает проблемы :)
- почему же не решает?? решает пишешь просто
kuku = new XML();
kuku.ignoreWhite = true;
//- это сравнительно недавно похиксили ММ гайз ;) так что не обращяйте внимания на то что оно не подсвечиваеться синим цветом в окне скрипт эдитора %) просто поверьте что такая штука есть
kuku.load("Mydoc.xml");
bla-bla-ba......
вот и проблема решена...
НО! если у пользователя версия плеер ниже 5.r41 то читай выше получиш =НУЛЛ!
:rolleyes: :rolleyes:
а XML с человеческим лицом ?
:confused: :confused: :confused:
плохо ли смотреть и править XML в блокноте ?
\\ - и что ж там плохого? хмл никак не отличяесться.. т.е. - кароче это обыкновенный текст (имееться ввиду простой текстовый документ) а поскольку ноутпад как раз для того и существует что бы смотреть текстовые документы то ниче плохого в этом нет :D :D :D
Оригинал написал(а) MagicMax
Как я понимаю решением проблемы с версией плейера и тормозами с XML все таки будет выстраивание XML кода в одну строку
как я понял ты все равно генериш документы АСП..
так что особого труда это не составит..
другой вопрос если нет..
Оригинал написал(а) MagicMax
Вот ето Ответ! Не Ответ, а Ответище!
И есче - где мне можно почитать (книги, ссылки) про XML в Flash? В частности - как вставить новый элемент, что нибудь про XMLSocket, SendAndLoad и т.д...
Заранее спасибо! ;)
вот недавно заказал книгу на Эмейзон.ком http://www.amazon.com/exec/obidos/ASIN/067232315X/ref=pd_sxp_elt_l1/104-7107115-5876762 Xml in Flash называеться.. выйдет в декабре 2001 года ;) так что будим читать и учиться.
для ХМЛСокет сокет сервер нужен %) .. незнаю что и ответить..
http://66.70.72.50/forums/forumdisplay.php?forumid=30 вот читайте сдесь
Оригинал написал(а) MagicMax
Вот ето Ответ! Не Ответ, а Ответище!
Дело в том, что мне надо закэшировать кое какие данные, которые стопудово не будут изменяться, причем эти данные будут в XML-файле и довольно большого объема (элементов 300-400). Ну понятно, чтоб пользователь не подгружал несколько раз одни и те же данные.
вот тут вот решение проблемы..
http://chattyfig.figleaf.com/~bhall/code/xmlack.zip
удачи
имееться ввиду что ты сможеш отпарсить ХМЛ во флеш достаточно большого размера без того что запнеться плеер.. 340К это достаточно много?
а нащет кеширования... кароче закешируеться так что не откешируеш.. проблема тут как раз как предотвратить кеширование. так что раз загрузив он будет висеть в кэш пока юзер сам не удалит временные файлы ;)
MagicMax
03.01.2002, 15:57
Всем спасибо за ответы!
Хорошо, а кто нибудь обходил проблему кэширования? Дело в том, что мне то как раз один файл (XML) надо закэшировать, а другой (тоже XML) обновлять, желательно даже в реальном времени...
Что то слышал о XMLSocket соединении с сервером, можно поподробнее кто знает? Мне то как раз и надо связываться с сервером внутри нашей сети.
edgoddog
03.01.2002, 16:57
а что ее обходить
грузи тот XML который дает свежие данные
и не грузи тот XML который не дает свежие данные
а ?
MagicMax
04.01.2002, 16:49
Хм... Ето один из способов, но мне не хотелось бы так делать. Хотелось бы сделать так, что обновлялся именно один XML-файл. :confused: Соотвественно обращение шло б как раз у нему. Ладна, бум думать. :rolleyes:
author / sam at nseir dot com
definition / noCache - Prevents caching of files.
// Prevents caching of loaded files (TXTs, SWFs, XMLs etc...)
String.prototype.noCache = function(){
if ((_root._URL.substr(0,5)).toLowerCase()!="file:"){
if(this.indexOf("?")==-1){
return this+="?noCache="+(new Date().getTime());
}else{
return this+="&noCache="+(new Date().getTime());
}
}else{
return this;
}
}
usage /
loadMovieNum("yourFile.swf".noCache(), 1);
or
loadVariablesNum("yourFile.txt".noCache(),1);
or
myXML.load("yourFile.xml".noCache());
Оригинал написал(а) MagicMax
Хм... Ето один из способов, но мне не хотелось бы так делать. Хотелось бы сделать так, что обновлялся именно один XML-файл. :confused: Соотвественно обращение шло б как раз у нему. Ладна, бум думать. :rolleyes:
Кстати, насчет примениния xml+flash
Бест - это юзать его для создания динамических менюшек,
новосей на сайте и тд, что требует однообразного копирования...
:D :D :D :D :D :D :D :D :D
MagicMax
23.01.2002, 13:35
Кстати, заметил, что оператор removeNode() подтормаживает , а по ЧайлдНодам все операции (appendNode и т.д.) проходят быстро. А так я использую XML вместо массивов - довольно удобно кстати.
Stellerex
24.01.2002, 14:45
Есть у меня сервак и флэшка, которая пользует сокетное соединение с ним. Кому надо - пишите, могу поделиться.
для XMLSocket нужен сервак особенный?
MagicMax
30.01.2002, 17:33
Да, кстати , а можно поподробнее про сокет-сервер? Чего надо поставить на сервере и т.д...
да ниче не надо.. в данном случяе предпологаеться что на севсере есть Джава среда.. т.е. можно запускать ждава приложения.. или EXE файлы (это наверное тебе больше всего подходит я думаю ;) ) .. потом запустить эго и все... и он будет бродкастить все что через него проходит всем кто подключен.
Оригинал написал(а) MagicMax
Да, кстати , а можно поподробнее про сокет-сервер? Чего надо поставить на сервере и т.д...
MagicMax
04.02.2002, 12:51
А что именно надо запускать чтоб получить сокетъ:)-сервер?
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.