Переменные по умолчанию с несколькими разработчиками - PullRequest
1 голос
/ 04 февраля 2010

Это может быть странный вопрос, но мне интересно, есть ли способ эффективно (возможно, с использованием пространств имен?) Иметь разные переменные по умолчанию в классе на разработчика в проекте actionscript. Я спрашиваю, потому что в настоящее время мы работаем над серией флэш-игр: всего 24. Каждый загружен контейнером оболочки. Оболочка получает флэш-переменную, для которой загружается игра. В нашей среде разработки (Flash / FlashDevelop) нет flashvars, поэтому константа в AS определяет, какую игру загружать при отсутствии flashvar:

/** Game to load during debugging if the game param is not set via flashvars. */
public static const DEFAULT_GAME:String = "gameName";

Таким образом, каждый разработчик меняет это на игру, над которой он работает. Однако, при внесении изменений в репозиторий (svn), разработчик должен будет изменить это назад или отменить изменения, и каждый разработчик должен изменить это в своей игре, когда кто-то другой изменит это.

Интересно, есть ли способ указать параметры по умолчанию, аналогичные Flashvars, в Flash IDE или в файле, специфичном для пользователя, чтобы код оставался нетронутым с помощью хакерских отладочных переменных. Я знаю, что во Flex вы можете установить flashvars в html-шаблоне, и тогда у каждого разработчика будет своя собственная папка публикации, а svn: игнорируйте это. Может быть, просто попросить каждого разработчика создать незафиксированный XML-файл, который определяет их пользовательские параметры? Я не знаю, есть идеи?!

Ответы [ 5 ]

5 голосов
/ 04 февраля 2010

Конфигурационные файлы для разработчиков обычно работают.

Иметь конфигурацию «по умолчанию» в репозитории с .default или .sample или чем-то, добавленным к имени файла, и когда разработчик впервые проверяет его, он копирует этот файл, удаляет расширение и настраивает это столько, сколько они хотят, не затрагивая никого другого.

Есть ли лучший способ? Наверное. Но я не нашел его.

2 голосов
/ 05 февраля 2010

Вы можете использовать условную компиляцию внутри FLASH IDE.

Вот пример кода:

package{

    import flash.display.Sprite;

    public class Main extends Sprite {

        CONFIG::USER_A
        private static const PATH:String="user_a_path";
        CONFIG::USER_B
        private static const PATH:String="user_b_path";

        public function Main(){
            trace("current path >",PATH);
        }       

    }

}

Затем добавьте 2 константы в опции компиляции Flash IDE:

CONFIG::USER_A
CONFIG::USER_B

И установить значение false или true для переключения пользователя

Подробнее здесь

2 голосов
/ 04 февраля 2010

Сохраните данные в Local Shared Object, и тогда у каждого разработчика будут свои собственные настройки по умолчанию без каких-либо хакерских вещей. Создайте форму, доступную только локально, и используйте ее для просмотра / редактирования значений по умолчанию. Храните данные в LSO. При запуске приложения проверьте наличие FlashVars, а если нет, проверьте наличие LSO.

1 голос
/ 04 февраля 2010

Ну, вы могли бы сделать это с FDT :

отметьте «Открыть URI после компиляции» (панель настройки отладки)

и установить URI:

bin/main.swf?test="this is a test"&test2="this is a test"

это будет действовать как flashVar.

0 голосов
/ 04 февраля 2010

Есть несколько решений. Хорошим с точки зрения программирования было бы иметь отдельный класс Static с именем «LocalConfig.as».

В вашем оригинальном .as файле. Там будет (псевдокод):

import common.LocalConfig;
...
public static const DEFAULT_GAME:String = LocalConfig.gameName;
...

}

Давайте используем класс Static для упрощения (псевдокод):

// Static class:
 package
{
    public class LocalConfig
    {
        public static var gameName:String = "Game1";


        public function LocalConfig()
        {}
    }
}

Следующий шаг. Вы регистрируете его в общей папке / LocalConfig вашего проекта в Source Control. Затем установите его на локальных компьютерах, чтобы он не проверялся, чтобы он не существовал на вашем локальном компьютере пользователя.

Наконец, вы хотите поместить это в локальную папку «global include / common /» вашего программиста, изолированную от процесса управления исходным кодом.

EDIT:

Удален мой справочник классов Singleton. Использование статического класса достаточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...