PDA

Просмотр полной версии : Как отловить что нету картинок


Mopc2007
04.05.2007, 11:07
Парсю XML стоки примерно такого вида

<item filename="17920" descr="81.17920.00.1 30 pcs. 6 pers. Dinner set/Aleksandria/Reminiscence "/>
<item filename="17898" descr="81.17898.00.1 20 pcs. 6 pers. Tea set/Aleksandria/Reminiscence "/>
<item filename="17899" descr="81.17899.00.1 21 pcs. 6 pers. Coffee set/Aleksandria/Reminiscence "/>

всю инфу сразу же загоняю в массив, на базе которого потом будут работать загруженные галереи на сайте.. Как на этапе парсинга сделать бы проверку существования картинки.... (filename=), и, если ее нет
не пихать строчку в массив вообще? Весь день вчера мучался с LoadClip и Лисенерами.. че то нифига не получается..


вот кусок парсинга:
playlist_xml.onLoad = function(success) {

if (success) {

var tracks_xml = playlist_xml.firstChild;
for (var i = 0; i < tracks_xml.childNodes.length; i++) {

var ibig="Slides/"+ tracks_xml.childNodes[i].attributes.filename+".jpg";
var ismall="Slides/"+ tracks_xml.childNodes[i].attributes.filename+"_sm.jpg";
myArray.push("mc" + i); // имя клипа
myArray.push(tracks_xml.childNodes[i].attributes.descr); // описание
myArray.push(ibig); //картинки
myArray.push(ismall);
myArray.push(ibig);
myArray.push(ibig); ;

}}

Может кто поможет... Буду оч. признателен
С Уважением Влад

CorC
04.05.2007, 13:39
у класса MovieClipLoader есть onLoadError

etc
04.05.2007, 14:21
Морс2007, оформите свой код (в т.ч. XML) тегами .

Mopc2007
04.05.2007, 14:51
у класса MovieClipLoader есть onLoadError

да, я им пытаюсь пользоваться и при пакетной обработке файлов в цикле.. и он даже мне вызывает это событие ровно столько раз скольких файлов не хватает! Но когда я в этом onLoadError пытаюсь выловить еще и имя картинки, то это не получается..

etc
04.05.2007, 15:23
Морс2007, нужно нажать на кнопку http://www.flasher.ru/forum/images/russian/style3/buttons/edit.gif справа от поста и оформить тегами код и XML, а не весь пост целиком.

Mopc2007
07.05.2007, 11:50
Коллеги, вот сегодня еще поколупался в попытках динамически анализируя xml вида


<item filename="17920" descr="81.17920.00.1 30 pcs. 6 pers. Dinner set/Aleksandria/Reminiscence "/>
<item filename="17898" descr="81.17898.00.1 20 pcs. 6 pers. Tea set/Aleksandria"/>
...


отловить отсутствие файлов (filename) на диске.. и получается что что-то видимо с тем, что не успевает отрабатываться все события.. на вот такой код



var mclListener:Object = new Object();
mclListener.onLoadStart = function(target_mc:MovieClip) {
trace(target_mc+"-- начал загружаться");
};

mclListener.onLoadError = function(target_mc:MovieClip, errorCode:String, httpStatus:Number) {
trace(taget_mc+"-- нету файла");
}


var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);


var playlist_xml = new XML();
playlist_xml.load("imperial.xml");
playlist_xml.ignoreWhite = true;

playlist_xml.onLoad = function(success) {
if (success) {
var tracks_xml = playlist_xml.firstChild;
for (var i = 0; i < tracks_xml.childNodes.length; i++) {
_root.createEmptyMovieClip("image_mc"+i, this.getNextHighestDepth());
var ibig="Slides/"+ tracks_xml.childNodes[i].attributes.filename+".jpg";
image_mcl.loadClip(ibig,eval("image_mc"+i));



}}}

trace выдает результат в виде:
_level0.image_mc273-- начал загружаться

т.е. это - последний клип...(конец tracks_xml.childNodes.length)..
почему же мне не выдаются результаты по всем остальным, начиная с первого?...
может все-таки поможет кто-нибудь? буду оч. признателен!

etc
07.05.2007, 12:33
Потому что загрузка асинхронна с кодом. Не говоря уже о том, что MovieClipLoader в один момент времени загружает только один клип.

Mopc2007
07.05.2007, 14:59
я так понял что без применения сторонних проверок (к примеру php скриптом) понять существует файл или нет, до его загрузки во флеш, нет возможности?

etc
07.05.2007, 15:09
Нет, можно создать для каждого клипа свой MovieClipLoader.