Форум 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=206823)

maxdemented 06.03.2014 23:56

Вопрос по основам ООП
 
Я очень новичок... И хотел бы задать вопрос, думаю не сложный...
Только прошу (не сочтите за наглость) дать вразумительный ответ (а не написать "читай основы ООП", я и так читаю Мука... то ли я что пропустил, то ли там не написано%)) или ссылку на конкретную инфу...
Суть вопроса:
Вот так вот делается все как надо(два кружочка рисуется)
Код AS3:

public class One extends Sprite     //не главный класс
        {
                public function One()
                      {
                        graphics.beginFill(0xFFCC00);
                        graphics.drawCircle(100, 100, 100);
                        cir();
                        }
                private function cir():void{
                    var cir:Sprite = new Sprite();
                    cir.graphics.beginFill(0xFFCC00);
                    cir.graphics.drawCircle(300, 300, 100);
                        addChild(cir);
                    }

А вот так ничего не работает:
Код AS3:

public class One extends Sprite
        {
                public function One()
                      {
                        graphics.beginFill(0xFFCC00);
                        graphics.drawCircle(100, 100, 100);
 
                        }
 
                    var cir:Sprite = new Sprite();
                    cir.graphics.beginFill(0xFFCC00);
                    cir.graphics.drawCircle(300, 300, 100);
                        addChild(cir);
                    }

Я вижу разницу только в том, что в 1 код в функции в 2 нет... и почему-то ничего не делается%) Почему? Ответе дураку пожалуйста...

Wolsh 07.03.2014 00:00

потому что код в теле класса не пишется — непонятно, когда его исполнять)))
Включите режим строгой компиляции, дайте шанс компилятору рассказывать Вам об ошибках.

maxdemented 07.03.2014 00:13

Из-за этих ошибок я обратился :) В общем установка на будущее. Никогда не писать код вне тела какого-либо метода! А почему "trace" или вот эта одна строка "var ciir:Sprite = new Sprite();" компилится при "Release", не без жалоб конечно, но компилится...?

Akopalipsis 07.03.2014 00:16

Потому что это всего навсего объявление свойства класса, хоть и без модификатора доступа.
Если модификатор отсутствует, то как Вы помните, он заменяется на internal.

maxdemented 07.03.2014 00:24

Все, огромное спасибо ответившим!!! В голове моей все встало на свои места. Тема закрыта.


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

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