PDA

Просмотр полной версии : подгрузка картинки из динамично создаваемой xml


MsXel
22.11.2010, 11:54
Здравствуйте, проблема такая: делаю флеш-галерею для сайта, фотографии она берет из xml, суть в том что swf одна, а xml будет много, и хранится они нигде не будут, так как будут генерироваться автоматически. Моя задача создать флешку, у которой в параметрах будет прописан путь, откуда она должна брать XML (это может быть как готовый файл, так и ссылка на скрипт).
т.е.: <param name="flashvars" value="path=/gallery.as_xml/8"/>
когда оно будет обращаться по данному адресу (если это скрипт), то будет генерироваться XML заданного формата с нужными фотками. Если кто то уже сталкивался с этой бедой, помогите пожалуйста. пример во вложении

mooncar
22.11.2010, 12:46
Вложение не смотрел.
Принцип можно взять такой. Ведь где-то у вас XML будет генерироваться?
Возможно это будет PHP-скрипт?
В любом случае можно сделать дополнительный (базовый) конфиг,в котором можно прописывать путь к этому скрипту.
Я например, в схожей ситуации делал так. Клал базовый конфиг в директорию с флешкой (и в доке для интеграторов указывал делать так) и сперва она была должна грузить именно его.
Из него она и узнавала URL, где брать сам XML (в вашем случае это может быть URL скрипта, генерирующего XML - по относительному пути, или с использованием http).

//определение каталога, откуда загрузили флешку (чтобы не зависеть от того, куда положат флешку интеграторы)
var swfUrl:String = this._url;
var sul:Number = swfUrl.length;
swfUrl_spl = swfUrl.split('/');
var swfName:String = swfUrl_spl[swfUrl_spl.length - 1];
var sun:Number = swfName.length;
var flashRoot:String = swfUrl.substr(0, sul - sun);

var xmlData:XML = new XML();
xmlData.ignoreWhite = true ;
xmlData.onLoad = loadXML; //функция для парсинга загруженного XML

var lcb:LoadVars = new LoadVars();
lcb.onData = lcbOnData;
lcb.load(flashRoot + 'configurl.inc'); //грузим "базовый" конфиг, где прописан в виде простой строки путь к XML

function lcbOnData(src:String) {
if (src)
{
var configXmlPath:String = src; //узнается путь к XML
xmlData.load(configXmlPath); //и загружается
}
else
{
tPercent.text = 'Ошибка связи\nс базовым конфигуратором';
}
}
function loadXML (loaded:Boolean) {
if (loaded)
{
....................//парсер XML
}
else
{
tPercent.text = 'Ошибка связи\nс конфигуратором данных xml';
}
}

MsXel
22.11.2010, 13:04
да есть скрипт, который генерирует xml, в которой хранятся картинки. в целом понятно, создать кофиг, к нем приписать скрипт, генерирующий xml. Флешка находит конфиг, читает его, а вот дальше что происходит, можно подробнее ? момент не понятен:
function loadXML (loaded:Boolean) {
if (loaded)
{
....................//парсер XML
}
else
{
tPercent.text = 'Ошибка связи\nс конфигуратором данных xml';
}
}

mooncar
22.11.2010, 13:07
Гм. По моему я все предельно ясно прокомментировал.
lcbOnData - в этом обработчике получаем значение URL и используем его для загрузки XML.
После старта происходит загрузка XML.
Флешка получает XML, и в функции loadXML идет его разбор.
У меня за "...." опущен мой разбор. У вас там свой разбор.

Смотрите пример в хелпе, что ли, как XML загружать и разбирать, если у вас трудности.
Тема о другом была, собственно :)