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

MyXus 27.10.2005 23:32

Учусь делать классы. XML loader.
 
Замотался читать факи, чужие классы. У меня ошибки – просто дебильные. Немогу.
Код:

class TXMLMenu extends MovieClip
{                                                       
        public var RootXML:XML;
       
        public function TXMLMenu() {
                this.RootXML = new XML();
                this.RootXML.ignoreWhite = true;
                this.RootXML.load('menu.xml');
                this.RootXML.onLoad = function () { this.trace(2222);  }
        }
       
        private function trace(s) {
                .............................
        }
       
}

Мало того что trace() не работает, *** с ним, я написал свой. Но какого дьявола эта байда не работает "this.RootXML.onLoad" ?? По какой такой причине я вынужден делать конструктор public'ом? (по прайвату флаш ругается на недоступность метода, хотя я его, в общем то, не вызывал, на то он и конструктор)?

Ною о помощи.

vadfe 28.10.2005 10:38

Почему не работает, у меня все работает.
Код:

class TXMLMenu extends MovieClip
{                                                       
        private var RootXML:XML;
       
        public function TXMLMenu() {
                this.RootXML = new XML();
                this.RootXML.ignoreWhite = true;
                this.RootXML.load('menu.xml');
                this.RootXML.onLoad = function () {
                              trace("Loaded");
                              trace(this);  }
        }
       
}

только трейс ты как-то непонятно вызываешь

KidsKilla 28.10.2005 14:21

при работе с классами this писать не нужно. даже вредно.

Skubent 28.10.2005 14:52

Гхм, конструктор вообще-то всегда public, иначе как его вызывать-то ?
Вот так должно работать:

RootXML.onLoad = function (success) {
trace("Loaded");
trace(this); }

andr64 28.10.2005 16:33

я не в тему немножко -)

вот скажите, классы они в принципе быстрее работают?
или чем еще лучше чем функциональное программирование?

MyXus 28.10.2005 18:26

Мой товарищ, вроде как высококвалифицированный as-программер прислал мне свой класс для образца. Там Конструктор - прайват. Правда пустой. This прописано вообще ко всем членам класса.
Ко всему прочему у меня не срабатывает xml_obj.onLoad, не срабатывает трэйс и вообще классы флэша пока вызывают во мне только чёрную злобу =)

MyXus 28.10.2005 18:30

Цитата:

Сообщение от andr64
я не в тему немножко -)

вот скажите, классы они в принципе быстрее работают?
или чем еще лучше чем функциональное программирование?

www.ya.ru "ООП отличие процедурные языки"

Mokus 28.10.2005 19:10

Цитата:

Сообщение от MyXus
Мой товарищ, вроде как высококвалифицированный as-программер прислал мне свой класс для образца. Там Конструктор - прайват. Правда пустой. This прописано вообще ко всем членам класса.
Ко всему прочему у меня не срабатывает xml_obj.onLoad, не срабатывает трэйс и вообще классы флэша пока вызывают во мне только чёрную злобу =)

this - ссылка на текущий обект класса, поетому this.trace() не будет работать (trace - глобальная функция, а не метод класса)

конструктор private означает. что ты обект даного класса сможеш создать только в даном классе. во Флеше также имеет смысл для обектов, что наследуються от MovieClip
Цитата:

вот скажите, классы они в принципе быстрее работают?
или чем еще лучше чем функциональное программирование?
Для тех. то задает такие вопросы - абсолютно ничем.
Цитата:

при работе с классами this писать не нужно. даже вредно.
программировать - вредно, от етого глаза портятся.

MyXus 28.10.2005 19:38

2Mokus: Офигенно. Тыб хоть прочитал написанное чтоли.. this.trace() - мой метод, внутренний.
Про прайват я и не спорю, просто удивился образцу, присланному мне (см. выше).

Mokus 28.10.2005 20:00

Цитата:

Сообщение от MyXus
2Mokus: Офигенно. Тыб хоть прочитал написанное чтоли.. this.trace() - мой метод, внутренний.
Про прайват я и не спорю, просто удивился образцу, присланному мне (см. выше).

Чувак, Обалденно. Я прочитал внимательно то что ты написал, а если ты чегото не понял - скажи: "Я не понял" и я обясню. В класе XML (обект RootXML) нет функции trace, а вызвать ты пытаешся ее именно оттуда.
Цитата:

Сообщение от MyXus
Про прайват я и не спорю

А че, с тобой кто-то спорит? Я тебе вообще чето обяснить хотел, помоч блин. Спорить я б нашел когото другого.


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

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