Форум 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)
-   -   "XML документ содержит ошибку" (http://www.flasher.ru/forum/showthread.php?t=142196)

Bezlepkin 15.07.2010 01:52

"XML документ содержит ошибку"
 
Привет всем!
Пишу такую штуку:
Код AS1/AS2:

var index:XML= new XML();
 
index.load('mp3player.xml');
 
index.ignoreWhite=true;
 
 
 
if (xml.status != 0)
{
trace ('XML документ содержит ошибку');
return;
}

Выдает: XML документ содержит ошибку

Что тут не так?

Бармалейкин 15.07.2010 02:01

В двух словах: с ним не так то, что он ещё не загрузился. Используйте события.

Bezlepkin 15.07.2010 02:51

Код AS1/AS2:

var index:XML= new XML();
 
index.load('mp3player.xml');
 
index.ignoreWhite=true;
 
 
 
index.onLoad = function(success) {
        if(succes) {
 
trace ('OK');
}
else {
        trace('XML документ содержит ошибку');
}
}

Так тоже самое

rainbowrussia 15.07.2010 03:06

Значит документ таки содержит ошибку, приведите его листинг.

Хемуль 15.07.2010 13:12

2 Bezlepkin:
Откройте XML в браузере Opera, если таковой есть - он, если мне память не изменяет, указывает позицию ошибки.

KirAmp 15.07.2010 13:51

ахаха..... неужели из вас смертных никто ошибки не заметил? Что в XML надо использовать не onLoad, а onData???

Пример красивого исполнения:
Код AS1/AS2:

var index:XML = new XML();
index.ignoreWhite = true;
index.load('mp3player.xml');
 
index.onLoad = function(success) {
  if(succes) {
    func("Работает!")
  }
  else {
      func('Ошибка при загрузке XML')
  }
}
 
function func(output_trace){
  trace (output_trace);
  trace ("--------------!");
  trace (index);
}


Хемуль 15.07.2010 13:54

Цитата:

Сообщение от KirAmp (Сообщение 922509)
ахаха..... неужели из вас смертных никто ошибки не заметил? Что в XML надо использовать не onLoad, а onData???

Зачем?

KirAmp 15.07.2010 13:56

Хемуль, затем что с методом онЛоад багит загрузка xml... сколько раз замечал

Хемуль 15.07.2010 13:59

Цитата:

Сообщение от KirAmp (Сообщение 922512)
Хемуль, затем что с методом онЛоад багит загрузка xml... сколько раз замечал

Ни разу не замечал.
Более того, вы разницу между этими событиями вообще понимаете?
Цитата:

onData (XML.onData handler)

Invoked when XML text has been completely downloaded from the server, or when an error occurs downloading XML text from a server. This handler is invoked before the XML is parsed, and you can use it to call a custom parsing routine instead of using the Flash XML parser. The src parameter is a string that contains XML text downloaded from the server, unless an error occurs during the download, in which case the src parameter is undefined.

By default, the XML.onData event handler invokes XML.onLoad. You can override the XML.onData event handler with custom behavior, but XML.onLoad is not called unless you call it in your implementation of XML.onData.
Цитата:

onLoad (XML.onLoad handler)

Invoked by Flash Player when an XML document is received from the server. If the XML document is received successfully, the success parameter is true. If the document was not received, or if an error occurred in receiving the response from the server, the success parameter is false. The default, implementation of this method is not active. To override the default implementation, you must assign a function that contains custom actions.

KirAmp 15.07.2010 14:05

Хемуль
ХЗ..... onLoad использовал несколько раз.... и иногда он недогруженные файлы мне выводит как загруженные...

Технически разницы не знал между ними...

Хемуль 15.07.2010 14:08

Цитата:

Сообщение от KirAmp (Сообщение 922516)
onLoad использовал несколько раз.... и иногда он недогруженные файлы мне выводит как загруженные...

А как вы это поняли? Как поняли, что недогруженные?
Да и вообще, почему вас не смутила мысль о том, что у XML два события и они идентичны? Разве это логично?

Кстати, вы там выше написали "Пример красивого исполнения" чужого кода. Зачем в нём "import mx.transitions.*;"? Для красоты? ^_^

KirAmp 15.07.2010 14:16

Хемуль
Я взял свой код, уже написанный и подправил ^_^ Не до правил немного. PS. подправил, добавив вывод в случае ошибки

Понял это по результатам - трейс выводит что-то непонятное, вся дальнейшая обработка разумеется тоже нагибается

Хемуль 15.07.2010 14:33

Цитата:

Сообщение от KirAmp (Сообщение 922520)
Понял это по результатам - трейс выводит что-то непонятное, вся дальнейшая обработка разумеется тоже нагибается

Ну так вот... Непонятное - это же не обязательно недогруженное. Может причина вообще не во Flash'е была.

KirAmp 15.07.2010 15:11

Хемуль
Поставив таймер на 10 секунд трейс вывел все нормально

in4core 15.07.2010 20:32

KirAmp вы несете просто ужасную чушь!

Код AS1/AS2:

class com.in4core.superXML {
 
        private static  var xml;
        private static  var b:Boolean=false;
        private var args;
        private static var _obj;
 
        function superXML() {
                xml = new XML();
                xml.ignoreWhite = true;
                xml.onLoad = mx.utils.Delegate.create(this, eventSuccess);
        }
        function eventSuccess(success) {
                if (!success) {
                        clearInterval(_obj);
                        this.args();
                        trace("sorry no files exist");
                }
              function getCallBack(f) {
                args = f;
        }
        function _load(path, d) {
                if (path == undefined) {
                        path = '';
                }
                xml.load(path+"/"+d+".xml");
                clearInterval(_obj);
                _obj = setInterval(this, "_check", 50);
        }
function _check() {
                var o = xml.getBytesTotal();
                var v = xml.getBytesLoaded();
                if (v/o != 1) {
                        return;
                } else {
                        clearInterval(_obj);
                        this.args(xml);
                }
        }
}

Если у вас будет такая реализация ( а именно callBack) то никаких глюков не будет НИКОГДА в жизни!!!

Код AS1/AS2:

var xl = new superXML();
xl.load("my.xml");
xl.getCallBack(f);
function f() {
trace("What u want  of xml structure")
}



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

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