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

neonoviiwolf 10.01.2015 16:41

Как правильно создавать экземпляры класса?
 
Такой вопрос, пользуюсь костылями на мой взгляд. Но хотелось бы делать по нормальному.
Делаю класс, который наследуется от мувика, но в классе приходиться делать ещё одну функцию "public", что бы была возможность сначала добавить класс и не отсылать туда переменные(т.к. координаты мувика зависят от другого класса), а потом уже, создать функцию, которая будет постоянно отправлять новые координаты для мувика. Извиняюсь заранее за стиль программирование, потихоньку перехожу на нормальный
Код AS3:

// это класс ship, в данном отрывке я цепляю к нему выхлоп из двигателя
                private function fn_exhaust(): void {
                        exhaust_Centr = new EXHAUST_CL();
                        exhaust_Centr.scaleX = 0.32;
                        exhaust_Centr.scaleY = 0.55;
                        exhaust_Centr.rotation = rotation - 90;
                        addChild(exhaust_Centr);
                        stage.addEventListener(Event.ENTER_FRAME, fn_Event_Exhaust);
                }
                private function fn_Event_Exhaust(e: Event): void {
                        var p: Point = this.globalToLocal(localToGlobal(new Point(70, 0)));
                        exhaust_Centr.fn_Event(p.x, p.y);
                }
        }

Код AS3:

package package_cl {
        import flash.events.Event;
 
        public class EXHAUST_CL extends exhaust_mc {
 
                public function EXHAUST_CL() {
                }
                public function fn_Event (_x, _y):void{
                        x = _x;
                        y = _y;
                }
        }
}


in4core 10.01.2015 16:51

А вопрос то в чем? Стиль конечно ужасен, но код рабочий

neonoviiwolf 10.01.2015 16:53

мне не нравится, что приходиться делать два класса public, разве это не костыли?

Добавлено через 8 минут
Ещё вопрос, как передать несколько параметров, если создаешь слушатель событий?
к примеру:
Код AS3:

stage.addEventListener(Event.ENTER_FRAME, fn_Event_Exhaust);

но хочу ещё одновременно передать координаты например
Код AS3:

public function fn_Event_Exhaust (e: Event, _x, _y):void{}

писал что-то вроде
Код AS3:

stage.addEventListener(Event.ENTER_FRAME, fn_Event_Exhaust(x, y));

но выдаёт ошибку

udaaff 10.01.2015 19:51

Цитата:

Ещё вопрос, как передать несколько параметров, если создаешь слушатель событий?
http://www.flasher.ru/forum/blog.php?b=239

Почитайте конвенцию по оформлению кода https://sourceforge.net/adobe/flexsd...20Conventions/

neonoviiwolf 10.01.2015 23:04

udaaff спасибо

dimarik 10.01.2015 23:33

Еще есть вариант правильного создания экземпляра класса a.k.a. объекта: оператор new.

neonoviiwolf 10.01.2015 23:37

dimarik, поясните, не понял


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

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