Форум 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)
-   -   class extends XML (http://www.flasher.ru/forum/showthread.php?t=76302)

inspace 02.03.2006 19:17

class extends XML
 
Пытаюсь сделать функцию внешнего класса, произведенного от XML, которая, забирает имя xml файла и формирует объект на основе данных их xml. Данные не загружаются. Как правильно написать?
Класс:
Код:

class xmlData extends XML
 {       
        var newXML:XML;       
        function xmlData() {
                var newXML:XML;               
        }
        function loadXML(str:String) {
               
                this.newXML.onLoad = function(success) {trace("sdf");}
                this.newXML.load(str);                               
                }       
}

Код
Код:

var xl = new  xmlData();
xl.loadXML("xmldata.xml");


silin 02.03.2006 20:29

в твоем раскладе
Код:

class xmlData// extends XML
 {       
        var newXML:XML;       
        function xmlData() {
                newXML=new XML();               
        }
        function loadXML(str:String) {
               
                this.newXML.onLoad = function(success) {trace("sdf");}
                this.newXML.load(str);                               
                }       
}

заметь, что при этом ему вовсе не обязательно наследовать XML..
а уж если наследовать, то незачем еще объект создавать, все методы уже здесь:
Код:

class xmlData extends XML {       
        function loadXML(str:String) {
                load(str);                               
        }       
        function onLoad(success) {trace("sdf");}
}


inspace 04.03.2006 02:13

silin спасибо.
Вообще, хотелось бы сделать так:
Последовательность пунктов соответствует последовательности кода на AS Panel
1) Создаешь экземпляр класса
2) Применяешь метод к экземпляру класса, метод передает экземпляру класса XML данные
3) Применешь функции класса, позволяющие обрабатывать XML

inspace 06.03.2006 01:48

Неужели никто не посоветует решения этой проблемы?

Erya 06.03.2006 02:51

Помоему для твоих описанных нужд подойдёт одна функция, которая принимает XML и возвращает данные скажем в массиве. Ты можешь так же описать эту функцию и в классе, и тебе не обязательно использовать конструктор, это в случае если не нужно наследование от XML, если же оно нужно смотри 2ой пример, который привёл silin.
З.Ы. Действительно ли тебе нужны классы, если ты не можешь определиться нужно ли тебе наследование от XML или нет?

Antares 06.03.2006 03:59

Неумение определить где нужно наследование, а где -- композиция, увы, говорит об одном. О необходимости немного поучиться.

А пока возьми лучше один из миллиона классов, перегоняющих XML в объект. Но помни, с XML работать всегда удобнее...

inspace 06.03.2006 12:55

Пользуюсь с композицией. С екстендом конгечно дал лишку.
..."которая принимает XML" Принимает объект? Дело в том, что когда я на панели AS пишу xl = new xmlData(); а затем применяю метод класса xl.loadXML("xmldata.xml") , и после вызываю ещё один метод xmlData, то оказывается, что xmldata.xml не успел ещё подгрузится. поэтому последний вызванный метод не срабатывает. не срабатывает и trace(xl); Вопрос именно по алгоритму... те как возможно сделать так, чтобы инициализация объекта уже произошла тогда, когда вызывается новый метод

silin 06.03.2006 13:40

>>чтобы инициализация объекта уже произошла тогда, когда вызывается новый метод
можно только наоброт: вызывать метод только после загрузки..
см. XML.onLoad


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

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