![]() |
Вопрос по LSO (Local Shared Objects)
Єт мы... И Мы просим помощи
Формулировка задачи: Есть флєшка которая отрисовует много объектов, которые географически должны быть привязаны к карте. Все объекты описаны в ХМЛ-конфигурационном файле. Задача: с помощью ТОЛЬКО средств флэша, сделать так, чтобы я мог требуемый объект переносить в нужное место на карте, и его положение (координаты) сохранялись в ХМЛ-конфиге. Решение: Как я понимаю это реализуется с помощью LSO (Local Shared Objects). 1 этап - Отрисовка самих объектов (из ХМЛ-конфига) 2 этап - при помощи Драг*Дроп позиционирование 3 этап - сохранение позиции в нужной месте ХМЛ-конфига. 1 этап я решил, 2 - решаю... А вот по поводу 3-го даже никаких идей нет.... Ведь как я понял Этот метод просто сохраняет данные в файлах.. а мне надо-то не просто сохранить - а сохранить именно в нужном месте, и ничего не поломать при этом..... Вопрос кажется не заезжен... пока.. так что будем ждать помощи зала . Благодарю авансом... __________________ "...время забыть, то кем ты был, но помнить кем ты стал..." |
по моему вопрос о сохронении во внешний файл поднимался 1000 раз ну ни как это зделать нельзя при помощи одного флеша Единственное что может делать флеш записовать инормацию в кукес(если это можно так назвать) при помощи класа LocalConnection
|
Да.
... язнаю.. Знаю, что сохранить можно в "кукиё"
с помощью ShareObjects.... Но может можно сохранять так, чтобы потом с этим "кукиё" можно было работать как с ХМЛ-файлом? Как бы так сохранить в этом "кукиё" структуру ХМЛ-дерева... И ОЧЕНЬ Желательно, чтобы я мог задать его имя (типа config.xml ) - ЭТО РЕАЛЬНО????? Это Вот и есть самый вопрос.. просто я счас читаю в книге о LSO - что-то не вижу ничего похожего....Может есть какая недокументированая возможность??? Ну если нет возможности - то ... жаль.. :(((((( ____________________________________ "...в сердце - Мертвая Зона..." |
ShareObjects.... не предусматривает сохронение XML дерева но веть эту проблему можно решить (Если дерево не очень сложное и тип данных повторяется ) сохроннием переменых например
Код:
var1ObjectNum1_x ObjectNum1_y ObjectNum2_x ObjectNum2_y ......... ObjectNumn_x ObjectNumn_y не чего другого посоветовать не могу ну кроме того что можно использовать PHP да если тебе это поможет то обект CustomActions предусматривает сохронение в XML (правдо в момент разроботки клипа :)) |
угу....
...Ясно.
Это не тот случай, дерево - НАМНОГО СЛОЖНЕЕ, чем твой кусочек кода :-)) Вот такое оно - (это только малый кусочек его. ____________________________________________ <?xml version="1.0" encoding="utf-8"?> <hgts val="HGTS"> <ats val="ATC-21" pict="1" c_x="20" c_y="5" state="c"> <route val="route-21" num="21" pict="2" c_x="525" c_y="100" state="c"> <oc val="OC"> <stoc val="Cтандартная ОС"> <stoc_koc val="KOC" num="210" pict="3" c_x="330" c_y="110" state="c"> <group_ooc val="все РШ" num="XX21"> <dc val="РШ" num="2102" pict="4" c_x="300" c_y="300" state="c"> <ld_ooc number_gauge="1" adress="пр-кт Московский 43" cross_st_para="23#15" para_on_ram="1#1" raz_koc="1#2" number_ns="358" prim="примечания"/> <shema val="cхема выдачи сообщений" area="Двери РШ"> <shema_zn zn0="закрытие" zn1="закрытие" zn2="авария датчика" zn3="открытие"/> </shema> <mess val="последние_мессаги" area="штук так" num="5"> <history msg1="НС_открытие_1" msg2="НС_закрытие_1" msg3="НС_закрытие_2" msg4="НС_закрытие_3" msg5="С_закрытие_1"/> </mess> </dc> <dc val="РШ" num="2103" pict="4" c_x="350" c_y="300" state="b"> <ld_ooc number_gauge="2" adress="пркт_Московский 31 2п." cross_st_para="14#99" para_on_ram="1_2" raz_koc="1#1" number_ns="361" prim="примечания"/> <shema val="cхема выдачи сообщений" area="Двери РШ"> <shema_zn zn0="закрытие" zn1="закрытие" zn2="авария датчика" zn3="открытие"/> </shema> <mess val="последние_мессаги" area="штук_так" num="5"> <history msg1="НС_открытие_1" msg2="НС_закрытие_1" msg3="НС_закрытие_2" msg4="НС_закрытие_3" msg5="С_закрытие_1"/> </mess> </dc> <dc val="РШ" num="2104" pict="4" c_x="400" c_y="300" state="a"> <ld_ooc number_gauge="4" adress="пр-кт Московский 38 2п." cross_st_para="28#35" para_on_ram="1_4" raz_koc="1#2" number_ns="301" prim="примечания"/> <shema val="cхема выдачи сообщений" area="Двери РШ"> <shema_zn zn0="закрытие" zn1="закрытие" zn2="авария датчика" zn3="открытие"/> </shema> <mess val="последние_мессаги" area="штук так" num="5"> <history msg1="НС_открытие_1" msg2="НС_закрытие_1" msg3="НС_закрытие_2" msg4="НС_закрытие_3" msg5="С_закрытие_1"/> </mess> </dc> <dc val="РШ" num="2105" pict="4" c_x="450" c_y="300" state="b"> <ld_ooc number_gauge="5" adress="ул. Юрьевская 8 Моск РИК" cross_st_para="43#90" para_on_ram="1_5" raz_koc="1#23" number_ns="348" prim="примечания"/> ............................................................ и так далее еще около (1-5)000 строк (будет - пока что только 400. _________________________________ Но самое плохое - что надо чтобы я все (и новые значения тоже!) хранились в одном файле. Так тчо наверное не выйдет .....Жаль! Я понял - чисто Флэшом не получится. Н0.. все равно спасибо, за помощь. ___________________________ "...лунный свет хозяин твой..." |
В Shared можно сохранять любой объект, в том числе и XML, я тут грабли в другом вижу - если у тебя объектов много, то и метаописание будет большое - в 100кб уместишься? Надо обязательно отслеживать объём твоего конфига и корректно обрабатывать переполнение.
ЗЫ Хотя это всегда надо делать:) |
ну дак тамже есть myLocalSharedObject.getSize()
а проследить не долго Код:
doc = new XML("<bla><p x='1'y='1'/><p x='2'y='2'/><p x='3'y='3'/></bla>"); |
LSO всегда сохраняет данные в текстовом формате. Но из текстового формата легко сделать XML.
И нет ничего страшного, если будет больше 100кб Появится флэшовое сообщение. Ну и что? Просто об этом нужно юзера предупредить и объяснить что это и зачем. Те кому надо - согласятся. Не надо - работаем без сохранения. Все просто. |
Вот пришла в голову мысля, попробовал, получилось.
Не факт, что подойдет в данном случае, но а вдруг... Смысл затеи в том, чтобы минимизировать объем данных, которые требуется сохранить. Принцип такой: Сохраняем не сам XML, а его структуру и атрибуты, которые могут изменять свое значение (data_from_so). Причем имя узла соответствует номеру описания узла в массиве. Имеем массив образцов узлов (nodes_array) И обходя структуру so_xml создаем my_xml короче говоря, скрипт: nodes_array = ["<node n='0' arg='hello' />", "<another_node n='1' >"]; data_from_so = "<0 attribut='any value'><0><1></1></0><1><0><1></1></0></1></0>"; so_xml = new XML(data_from_so); my_xml = new XML(); XMLNode.prototype.reBuild = function(source_node) { if (source_node.firstChild == undefined) { return; } var node = source_node.firstChild, n, a, i while (node) { this.appendChild(new XML(_root.nodes_array[node.nodeName]).firstChild); n = this.lastChild; a = node.attributes; for (i in a) { n.attributes[i] = a[i]; } arguments.callee.call(n, node); node = node.nextSibling; } }; my_xml.reBuild(so_xml); trace(so_xml); trace(my_xml); |
я навернео в хронол. порядке:
2 BitSky, FreeLander То, что больше будет чем 100 кубиков - действительн не так страшно, так как изменения в ХМЛ из флэша планируется, что будет вносить 1-2 человека.. - ( это как бы админская часть!). Но вот как перевести текстовый формат в ХМЛ -это что-то совсем не понятно!!! легко? (может покажешь или расскажешь трошки подробнее??:?:?) Идея насчет сохранения ТОЛЬКО ИЗМЕНЕННЫХ (ну или ИЗМЕНЯЕМЫХ) ДАННЫХ - мне нравится. Я правда в АС не оч. силен и этот скрипт тяжеловат пока для моего восприятия, но я разберусь, обязательно!!! Я правда сегодня не могу разобраться - проект недостпен, но завтра - вплотную займусь анализом. А может кто еще какую-нить идейку подбросит :-)))) БЛАГОДАРЮ ЗА ПОМОЩЬ. __________________________ "...но яркий луч вспыхнет во тьме и покорность выбьет мигом...." |
| Часовой пояс GMT +4, время: 06:29. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.