![]() |
Как создать объект на основе XML-описания его свойств?
Доброго времени суток, уважаемые Знатоки.
Работаю сейчас над флеш версией портфолио а-ля "ЕЖгун". Хочу использовать тот же приём для отображения превьюшек для своих работ. Если вкратце - у меня на сервере лежит папка /portfolio/ с дочерними папками-категориями (Banners, Websites) в каждой из которых размещаются папки-проекты (dir01, dir02 .. dirXX) с описанием проекта, скрином и превьюшкой. внутри папки /portfolio/ сидит мой пхп-скрипт, который выполняет обход вложеных папок и файлов и на их основе формирует XML-описание древа каталогов. В книге Д.Гурского по AS2.0 в главе посвященной XML была заметка, что для объекта во флеш как на примере ниже можно сгенерировать следующее XML-описание. пример: http://sextus.org/wp-content/uploads...sheme-gif2.gif А как можно выполнить обратное действие? то есть на основе XML-описания воссоздать объект в AS2.0?:umnik2: PS: По задумке, воссоздав объект и перебирая все его свойства циклами, я бы мог по маске передавать пути для загрузки описаний и превьюшек в мой ролик. например: "www.mysite.url/ + portfolio/ + banners/ + dir01/ + prev.jpg" // адрес превьюшки для первой работы из папки-категори Banners - - - дополнительно - - - моё дерево папок: http://sextus.org/wp-content/uploads...one/derevo.gif Cгенерированое скриптом XML-описание этого дерева: Код HTML:
<?xml version="1.0" encoding="utf-8"?>PHP код:
|
как вариант запихать этот хмл в компонент Tree, по ходу слегка подправив ( нюансы за бортом, но схема рабочая)
зы: можно не править ХМЛ в AS, а заставит пхп генерить сразу валидный вариант Код:
//myTree - компонент Tree на сцене |
Спасибо за ответ, да, разумеется я легко могу избавится от XML-заголовка, и свернуть всё дерево в одну строку для удобства, но насколько я понимаю, (а понимаю я хренова) ваш пример будет формировать несколько иной объект данных. А к большому сожалению структура этого объекта должна быть другой. вот такой:
var portfolio:Object = {Banners:[dir01:[full.gif, info.txt, prev.gif], dir02:[full.gif, info.txt, prev.gif], dir03:[full.gif, info.txt, prev.gif]], Websites:[dir01:[full.gif, info.txt, prev.gif], dir02:[full.gif, info.txt, prev.gif], dir03:[full.gif, info.txt, prev.gif]]} есть точка отправная (xml) и конечная (пример выше), а вот что между ними должно быть, как конкретно эти вот данные выдрать из XML и присвоить их объекту - я не знаю. Буду очень благодарен за рабочий пример с подробными комментариями, потому что сам ни в книге, ни в сетевых исходниках решения своей задачи не нашел(( :confused: |
iSextuS, я теперь не вполне понимаю в чем проблема..
т.е. отдать дереву хмл - не вопрос, тогда чего: передать данные из хмл в объект? нарисовать-настроить все? 'рабочий пример с подробными комментариями' чего вы ждете? формулируйте вопрос, но чтоб он не был похож на ТЗ, оно тоже проходит, канеш, но в другом разделе :) |
блин, да мне просто надо пример, как из хмл-файла вроде моего замутить объект как на примере что я показал ;)
я просто теряюсь - хмл-ка с большим числом вложений, и объект тоже по сути должен быть описан многомерным массивом. - я не знаю как записать все эти данные в объект и правильно распределить их по уровням вложенности) ну епт - ну как дилетант вроде меня может это вам на пальцах объяснить.( |
XML без атрибутов:
Код:
<root>Код:
function createObj(currentNode:XMLNode):Object { Код:
{Код:
<root>Код:
function createObj(currentNode:XMLNode):Object {Код:
{ |
udaaff, я бы не стал юзать callee там, где можно обойтись без него.
|
Ага, я тоже решил не юзать там, где это возможно из-за того, что она будет вызывать в области видимости объекта arguments, тока забыл уже об этом.
Пример: Код:
class MyClass { Код:
SomeSting |
udaaff, а последний код разве для AS2?
|
Да, это AS2. Код написан в классе.
|
| Часовой пояс GMT +4, время: 14:41. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.