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

wolhw 09.09.2011 00:28

А почему моветон, и чем плохо такое расшивение?
Я просто тоже учусь пока и сам пользуюсь такой конструкцией (не не мейн расширяю конечно, а другие слишком разросшиеся классы, Model например с конструкции AMVC)
вот например у меня в ModelQ.as подгружаются даные c mySQL, в ModelCore.as -- все расчеты итд. а в мейн класе юзаю ModelMain() (последнее звено расшырения, если можно так сказать).
Чем мне ето грозит?

in4core 09.09.2011 01:18

Цитата:

Чем мне ето грозит?
Венерическими заболеваниями )))

Tasmanec 09.09.2011 01:44

Класс Main():

Код AS3:

/**
 * Created by IntelliJ IDEA.
 * User: Tasmanec
  */

package {
import flash.display.*;
import flash.events.MouseEvent;
import fl.controls.Button;
import flash.text.TextField;
 
public class Main extends Sprite
{
  public  var myButton:Button = new Button();
  public static var variable:Number = 0;
  public static var text:TextField = new TextField();
 
    public function Main() {
        addChild(myButton);
        myButton.addEventListener(MouseEvent.CLICK, increment);
        text.border = true;
        text.y = 50;
 
        addChild(text);
    }
    private function increment(e:MouseEvent):void
    {
      variable++;
      new Data().addOne();
    }
}
}


Класс Data():

Код AS3:

/**
 * Created by IntelliJ IDEA.
 * User: Tasmanec
 */

package {
 
public class Data {
    public function Data()
    {
 
    }
    public function addOne():void
    {
      Main.variable++;
      Main.text.text = String (Main.variable);
 
    }
}
}


Dukobpa3 09.09.2011 01:46

Еще один. С ума блин посходили????
Код AS3:

      Main.variable++;
      Main.text.text = String (Main.variable);

Добавлено через 55 секунд
Код AS3:

    private function increment(e:MouseEvent):void
    {
      variable++;
      new Data().addOne();
    }

Добавлено через 3 минуты
какой смысл выносить инкремент переменной в какой-то отдельный класс? просто чтоб принципиально добавить лишний класс?

Такие элементарные действия как раз в одном классе должны происходить. А отдельные классы должны выдела=яться под какой-то отдельный логическо функциональный блок.

Например игра
в проекте есть земля (выделим в отдельный модуль потому что допустим она должна отрисоваться из тайлов, там должны летать бабочки, там должны квакать лягушки)
в проекте есть главный герой
в проекте есть враги

Вот и разделяем наш один класс на три куска.:
Земля
враг
главный герой.

А вот это вот типа "инкремент своей переменной через жопу" - это будем врагам советовать.

Tasmanec 09.09.2011 01:56

Цитата:

Например игра
в проекте есть земля (выделим в отдельный модуль потому что допустим она должна отрисоваться из тайлов, там должны летать бабочки, там должны квакать лягушки)
в проекте есть главный герой
в проекте есть враги

Вот и разделяем наш один класс на три куска.:
Земля
враг
главный герой.
так и делаю, собственно всегда)


Цитата:

Сообщение от cervikx (Сообщение 1029548)
А ты можешь пожалуйста расписать подробнее про передачу переменных в другой класс.
Допустим в классе Main создаётся кнопка при нажатии на которую переменной variable добавляется 1.
Класс data получает эту переменную и увеличивает значение ещё на 1 и выводит её в textField.
Притом значение переменной variable нужно чтобы изменилось и в классе Main.
Как в таком случае осуществлять передачу этой переменной?
Хотелось чтобы можно было использовать эту переменную без передачи туда - сюда...

как спрашивали, так и написал)

incvizitor 09.09.2011 02:23

Tasmanec, вообще почитать о том как переместить переменную в другой класс можете сдесь.

Задайте себе как минимум следушие вопросы:
1 - зачем в increment инкрементить переменную, а потом вызывать метод который опять же её инкрементит?
2 - зачем каждый раз, при вызове increment, создавать экземпляр класса Data?

Остальное, не знаю получится ли объясним Вам на данном этапе.

Tasmanec 09.09.2011 02:44

мегаступил, бывает
беру свои слова обратно, вместе с кодом))

cervikx 09.09.2011 08:29

Мне несколько классов нужны для создания одной тд игры.
А просто как кто-то писал наследоваться от класса Main нельзя?

Dukobpa3 09.09.2011 08:30

Вы мне объясните мотивацию наследования от мейн? ЗАЧЕМ??? это может понадобиться сделать?

Добавлено через 1 минуту
Задача мейна инициализировать всех и вся, раздать каждому роли и уйти в сторонку. А всё остальное наполнение потом живет своей жизнью.

По крайней мере у меня так обычно. Такая привычка еще с плюсов осталась.

djyamato 09.09.2011 10:34

Вложений: 1
чуть не в тему но все же
Мой рабочий стол


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

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