Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как отловить что нету картинок (http://www.flasher.ru/forum/showthread.php?t=95347)

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) тегами [code][/code].

Mopc2007 04.05.2007 14:51

Цитата:

Сообщение от CorC
у класса MovieClipLoader есть onLoadError

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

etc 04.05.2007 15:23

Морс2007, нужно нажать на кнопку http://www.flasher.ru/forum/images/r...ttons/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.


Часовой пояс GMT +4, время: 07:32.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.