Показать сообщение отдельно
  #70  
непрочитанный 05.03.2009, 13:08
Аватара для rukez
Завсегдатай
 
Регистрация: Mar 2008
Адрес: SPb
Возраст: 41
Сообщения: 15,537
rukez Илухо =)))rukez Илухо =)))rukez Илухо =)))
Ответ: Ищу работу в СПб!!!

Цитата:
По XPath читал чего-нибудь когда-нибудь?
читал
впринципе адресация xml на флексе очень напоминает xpath за исключением возможности формирования "не функционального" пути, да и впринципе с непосредственной адресацией (для которой как я понимаю xpath и был создан) проблем на флексе нет - за сим сторонней библиотекой xpath'а не пользуюсь, если его реализацию включат в flex 4 или 5 то потыркаю и разбирусь, а пока смысла большого в нём не узрел
Цитата:
А шо там подлого?
Вполне юзабельно.
Ы! Там очень много подлого если начинаешь писать что-то сложнее плоской таблицы
Например во флексе 3 появился реально работающий и встроенный (а не сторонний) компонент advancedDataGrid (сокращённо adg) - многоуровневая иерархическая таблица, по сути позволяет отобразить полностью всё дерево XML документа
Дык вот, сложности реализации xml возникли у мну следующие при её более-менее плотном задействовании:
- нет никакой связи адресации adg и адресации xml - adg ведёт отсчёт от первого ВИДИМОГО элемента сверху списка т.е. если у тебя выделена первая нода второго открытого дерева, каждое из которых имеет по 3 элемента, то адрес получаемый по adg.selectedIndex будет 5 (т.е. 6ой элемент сверху включая самих родителей), а если первое дерево свернуть то индекс будет 2 (3ий элемент) ... понятно что индекс самого xml будет в обоих случаях 0, а адрес [1][0] ...
Сам индекс получить можно не свойством а функцией adg.selectedItem.childIndex() но тогда по понятным причинам нельзя взять и просто обратиться к соседнему элементу, и
это приходится делать через небольшую жопку: adg.selectedItem.parent().elements()[adg.selectedItem.childIndex()+1];
Это как-бы теория
Практика в том что динамически добавить новую ноду к дереву очень легко: adg.selectedItem.appendChild() а вот удалить ... удалить сложнее - есть два пути:
1) Добавить в структуру XML переменную для идентификатора (со всеми вытекающими необходимостями контроля уникальности) и удалять по ней:
delete adgDataProvider.descendants("*").(@id==adg.selecte dItem.@id)[0];
2) Делать опять условную адресацию:
delete node.parent().elements()[adg.selectedItem.childIndex()];
что проще

Ну и отсутствие встроенных функций для например нахождения минимума и максимума (можно только перебрав всё дерево либо воспользовавшись сортировкой но это в разы дольше), для смены мест нод (свап) - это кстати вообще вроде только у MS реализовано, приходится лопатить довольно сложную функцию с контролем границ родительского документа, и т.п.

А самое неприятное что когда всё это сделаешь, понимаешь что твой XML из чистого и красивого стал ... полной копией обычной базы данных - те-же индексы в переменных, та-же сортировка перед выводом (это меня очень сильно обломало - только написал нормальный парсер для смены нод местами и контролем версий документа как сообразил что он исключительно однопользовательский т.к. для того чтобы быть уверенным в правильности удаляемого индекса нужно блокировать ветку и перезаписывать её целиком ... цуко ) и т.п.

Вообщем понятно что все эти проблемы как-бы и не проблемы, и что все они по большей части от плохого знания мною XMLя но судя по гуглу, в мире уже весьма большое кол-во людей у которых от XMLя мозг плавицо и рождаются "xml aware" комьюнити
Но правда и возможностей масса - сейчас осваиваю способы интерпретации данных без их изменения - в результате приходится переходить на базоподобную структуру но зато можно делать многопользовательские приложения (всмысле с возможностью редактировать БД одновременно несколькими пользователями без коллизий и блокировок)

Цитата:
Полтора года назад увидев флекс, был в ахуе. Все так круто и пиздато.
А рендер движок у флэша охуенный.
Всё ахуенно
За одним исключением - нет html рендерера ... точнее есть но поддерживающий пяток примитивных тегов и не поддерживающий таблицы Т.е. взять и портировать готовый сайт на флекс попользовав на первое время уже готовые таблички нельзя - все данные в бд блин И возможности дизайна сильно отличаются от классических из-за этого - куй чего возьмёшь и нарисуешь, всё надо на динамику переводить ... это конечно правильно и классно ... но цуко лениво иногда

Цитата:
Но блять, экшнскрипт, это пиздец. Хватило на неделю.
Щас только ваяю что-то страшным волевым усилием.
Нормуль, он впринципе не шибко страшен
Страшны две вещи:
1) То что это уже нифига не "скрипт" (а я ооочень люблю именно скриптовые языки)
2) Пипец уродливая документация - adobeDocs и adobeLive это жопа по контенту - многие примеры не работют, часть описаний "на отъебись", примеры с собственно с результатом исполнения кода только в лайве и т.п.
В результате многие возможности языка можно узнать только гуглом (например childIndex() фиг где упомянут - подсказали на флешере только)

Вообщем вещь отличная но надеюсь что её всё-таки допилят через пару лет - главное что они концепцию "чистого языка" почти не меняют и не лепят костылей
Но вопрос всё-таки в том - почему жаберам платят так докуя ? За флекс судя по хедхантерам и иже с ним платят какие-то копейки, а гемора впринципе в нём то-же хватает ...
__________________
страсти то какие, еббать мой жир (с) Йльюхо
да народ у нас говно, но другого народа, для вас пидорасов, у меня нет! (с) И. В. Сталин
topol3.ru
Ответить с цитированием