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

ZackMercury 31.05.2014 04:08

DDDBest, плохо вы Delphi учили, всё же ООП, как-никак, там присутствует.
Консоль имеется в виду OUTPUT. Включается в меню View -> Output Panel.
Если вы про примеры зоопарка, то там всё по порядку идёт, и позже вы дойдёте до той главы, где рассказывается, как скомпилировать проект во Flash IDE.
Во FlashDevelop почти то же самое, только главный класс приложения по умолчанию сразу создаётся и называется Main.

DDDBest 31.05.2014 05:25

Ага с мэйном вродь разобрался, туда все фигачу=) А вот с trace(x); не получается, не выводит значение, пишу так:
Код AS3:

package 
{
        import flash.display.Sprite;
        import flash.events.Event;
        import xxx.y;
 
        /**
        * ...
        * @author xxx
        */

        public class Main extends Sprite
        {
                public var  x = new y;
                trace(x);
 
                public function Main():void
                {
 
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        // entry point
                }
 
        }       
}

файл y.as

Код AS3:

package xxx {
        public class y {
                public function y() {
                }
        }
}


ZackMercury 31.05.2014 05:48

Пишите после коммента "entry point", не зря же он там написан.
Код AS3:

package 
{
        import flash.display.Sprite;
        import flash.events.Event;
        import xxx.y;
 
        /**
        * ...
        * @author xxx
        */

        public class Main extends Sprite
        {
                public var  x:y;
 
                public function Main():void
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        // entry point
 
                        x = new y();
                        trace(x);
                }
 
        }       
}

Ещё должен стоять Debug mode.

caseyryan 31.05.2014 09:48

Цитата:

А вот с trace(x); не получается, не выводит значение, пишу так:
Потому что в этом месте переменная x не инициализирована. Хоть там и написано new y, но в реальности инициализация произойдет только в конструкторе.

П.с. не надо учиться сразу плохому. Во-первых, названия классов нужно всегда писать с большой буквы, а названия переменных с маленькой, во-вторых, при создании нового экземпляра, принято всегда ставить скобки после вызова конструктора, даже если туда не передается никаких аргументов new y();

Wolsh 31.05.2014 13:34

А создавать в наследнике Спрайта public свойство х это нормально?) Никто не ругается?

DDDBest 31.05.2014 13:35

Вложений: 1
Ничего не выходит=( Вот тут дело наверное в дебагере=) Как проверить, стоит он (дебагер:D), или нет? А про то, что не нужно сразу учиться плохому, делать все по человечески - так я раздолбай, и для меня это ничего не изменит, я уверен, а мои гениальные коды изучать я думаю никто не будет, я занимаюсь для "покурочить мозги", не более. Вот вспомнил я игру, старенькую со старенькой нокии еще, там кубы цветные много их, по ним клацаешь и смежные такого цвета убираются, поискал - не нашел, вот задумал написать=) На делфи самый "маштабный" проэкт - игра свара или сэка, где как называется=))) Помню очень много строк почти одинаковых ушло на оценку компом комбинации, хоть и был уверен, что можно найти какой то алгоритм и сделать это поменьше чтоб занимало, но хотелось все самому, что там не моего - обложка карт - с AdultPoker'а. Вот она собственно.

DDDBest 31.05.2014 13:37

Цитата:

Сообщение от Wolsh (Сообщение 1167070)
А создавать в наследнике Спрайта public свойство х это нормально?) Никто не ругается?

Ну я откомпилировал так как он написал - все норм, как по маслечку=) Только ничего оно мне не показывает=(
Аха, не так понял, ты про мой пример
Код AS3:

public class Main extends Sprite  {
 public var  x = new y;
 trace(x);

Таки да, я не правильно написал, оно не компилируется, я перенес потом, суть моего вопроса не в этом=))

ZackMercury 31.05.2014 14:44

Цитата:

Только ничего оно мне не показывает=(
Debug mode on?
P.S. Мои попытки вложить скрин из Dropbox оказались неудачными, не понимаю, с чего вы его так ненавидите.(К админам) С ним удобно.

Wolsh 31.05.2014 14:54

Цитата:

Чтобы обратиться к предыдущему, достаточно написать super.x, к текущему - this.x.
Изобразите, как Вы обратитесь к "супер" х экземпляра извне?
Впрочем, сначала Вам придется скомпилиться в игноре.

ZackMercury 31.05.2014 14:57

Цитата:

Впрочем, сначала Вам придется скомпилиться в игноре.
Да я уже попробовал скомпилиться, не компилится. Раньше думал, что так можно.


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

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