Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Помогите новичку с ООП (http://www.flasher.ru/forum/showthread.php?t=206214)

grafillo! 20.01.2014 18:40

Помогите новичку с ООП
 
Не могу добавить элемент из библиотеки
вот код класса
Код AS3:

package  {
        import flash.display.MovieClip;
 
        public class registration {
                public var b:box;
 
                public function registration() {
                        b = new box;
                        addChild(box);
                        trace("dadas");
                }
        }
 
}

пишет ошибку 1180: Call to a possibly undefined method addChild.
это типа я не импортировал класс который содержит эдчайлд или нельзя добавлять элементы из библиотеки через класс?

Babylon 20.01.2014 18:44

Откуда известно [this].addChild - это DO?

illuzor 20.01.2014 18:52

Класс должен расширять Sprite или MovieClip.
А в вашем классе просто нет метода addChild()

grafillo! 20.01.2014 18:52

c this другая ошибка 1061: Call to a possibly undefined method addChild through a reference with static type registration.
Код AS3:

package  {
        import flash.display.MovieClip;
 
        public class registration {
                public var b:box;
 
                public function registration() {
                        b = new box;
                        this.addChild(box);
                        trace("dadas");
                }
        }
 
}

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

Rivexe 20.01.2014 18:58

Цитата:

Сообщение от grafillo! (Сообщение 1157756)
это не основной класс, я так полагаю он необязательно должен расширять мувиклип или спрайт

Ну если вы так полагаете, тогда вам надо определить свой метод addChild.

samana 20.01.2014 18:59

Любой объект (класс), который должен быть визуально виден, необходимо расширять. А иначе, как этот класс догадается, что он отображаемый объект?
Цитата:

это не основной класс, я так полагаю он необязательно должен расширять мувиклип или спрайт
Тогда объясните для чего вам класс registration и какую задачу он должен выполнять.

grafillo! 20.01.2014 18:59

всмысле, почему метод addChild не работает то?

Добавлено через 1 минуту
этот класс не отображаемый объект, он добавляет на сцену объект из библиотеки

samana 20.01.2014 19:08

Код AS3:

this.addChild(box);

this - ссылается на экземпляр того класса, в котором прописана данная строка. В вашем случае this = registration. Вы пытаетесь добавить box в registration, а это невозможно, так как registration не отображаемый объект. Ваш класс registration ничего не знает о главной сцене, ведь он никак не связан с ней.
Передайте ссылку на сцену классу registration, и через эту ссылку уже обращайтесь к сцене и добавляйте на неё то, что вам нужно.

grafillo! 20.01.2014 19:25

вообщем мне нужно чтобы класс регистрашн добавлял на сцену окно регистрации с кучей полей, как это лучше всего сделать? поля и само окно находится в библиотеке, напишите в виде примера кода пожалуйста.

Rivexe 20.01.2014 19:27

Код AS3:

package  {
        import flash.display.MovieClip;
 
        public class registration {
                public var b:box;
 
                public function registration(container:DisplayObjectContainer) {
                        b = new box;
                        container.addChild(box);
                        trace("dadas");
                }
        }
 
}



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

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