![]() |
Организация хранилища констант
Здравствуйте, нуждаюсь в совете по такому вопросу. В моем проекте необходимо место для хранения определённых констант (масс, радиусов, скоростей различных космических тел). Хотелось бы узнать как организовать такое хранилище, что бы доступ к нему имелся из любого класса, например в виде такой конструкции Astro.Sun.Radius (доступ к значению радиуса Солнца), как это организовано с классом Math, когда вводя Math.PI получаю доступ к значению числа Пи. Заранее спасибо.
|
static
|
Гляньте исходный код Math и увидите:
Код AS3:
Код AS3:
|
Спасибо большое. Сделал. Всё работает. Посмотрел по вашему совету класс Math и немного растерялся. Там объявляются только константы и функции. А где собственно хранятся тела функций и значения констант, и что это за конструкция
Код AS3:
|
То, что вы возможно увидели - это intrinsic класс, т.е. не настоящий, а только для автокомплита, например. Настоящий класс написан на C или может быть C++ и исходников его в публичном доступе либо нет, либо надо смотреть исходники Тамарина, может там и есть.
|
Все понял, спасибо.
|
wvxvw, класс вполне себе настоящий =) просто это интерфейс для сишных методов. иногда в них бывает и код.
|
Я параметры и константы храню в файле GlobalParameters.as в корневом каталоге:
Код AS3:
|
mikhailk, у Вас это получаются не константы, их изменить можно. Причем Вы видимо забыли static написать, вообще доступ не получится без извращений...
Добавлено через 13 минут И автокомплит не будет работать, короче ужас, имхо. По моему лучше хранить константы в тех классах к которым они относятся. В виде статических констант. Это кроме всего прочего ещё и быстрее работать будет. |
BlooDHounD: интерфейс это настоящий класс?
mickfallout: статик не нужен, но GlobalParameters действительно не будет константой, равно как и его ключи. Что касается констант в AS вообще, то, скажем так, они вобщем-то по поведению не константы, т.как они ссылки, а не значения. Т.е. при компиляции упоминания строковых констант не заменяется строками-значениями. Кроме того класс Class динамический, поэтому доступ к его свойствам немного медленнее, чем доступ к свойствам не динамических объектов. |
| Часовой пояс GMT +4, время: 18:17. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.