Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.04.2010, 19:50
maycry вне форума Посмотреть профиль Отправить личное сообщение для maycry Найти все сообщения от maycry
  № 1  
Ответить с цитированием
maycry

Регистрация: Apr 2010
Сообщений: 8
Question Организация хранилища констант

Здравствуйте, нуждаюсь в совете по такому вопросу. В моем проекте необходимо место для хранения определённых констант (масс, радиусов, скоростей различных космических тел). Хотелось бы узнать как организовать такое хранилище, что бы доступ к нему имелся из любого класса, например в виде такой конструкции Astro.Sun.Radius (доступ к значению радиуса Солнца), как это организовано с классом Math, когда вводя Math.PI получаю доступ к значению числа Пи. Заранее спасибо.

Старый 25.04.2010, 19:56
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 2  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
static

Старый 25.04.2010, 19:58
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 3  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Гляньте исходный код Math и увидите:
Код AS3:
package
{
	/// The Math class contains methods and constants that represent common mathematical functions and values.
	public class Math extends Object
	{
		...
		public static const PI : Number;
		...
	}
}
В вашем случае будет
Код AS3:
package
{
	public class Sun extends Object
	{
		...
		public static const RADIUS : Number;
		...
	}
}

Старый 25.04.2010, 20:41
maycry вне форума Посмотреть профиль Отправить личное сообщение для maycry Найти все сообщения от maycry
  № 4  
Ответить с цитированием
maycry

Регистрация: Apr 2010
Сообщений: 8
Спасибо большое. Сделал. Всё работает. Посмотрел по вашему совету класс Math и немного растерялся. Там объявляются только константы и функции. А где собственно хранятся тела функций и значения констант, и что это за конструкция
Код AS3:
intrinsic class Math{
...
}

Старый 25.04.2010, 20:49
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 5  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
То, что вы возможно увидели - это intrinsic класс, т.е. не настоящий, а только для автокомплита, например. Настоящий класс написан на C или может быть C++ и исходников его в публичном доступе либо нет, либо надо смотреть исходники Тамарина, может там и есть.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 25.04.2010 в 23:44.
Старый 25.04.2010, 20:51
maycry вне форума Посмотреть профиль Отправить личное сообщение для maycry Найти все сообщения от maycry
  № 6  
Ответить с цитированием
maycry

Регистрация: Apr 2010
Сообщений: 8
Все понял, спасибо.

Старый 25.04.2010, 21:07
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 7  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
wvxvw, класс вполне себе настоящий =) просто это интерфейс для сишных методов. иногда в них бывает и код.

Старый 25.04.2010, 22:02
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 8  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Я параметры и константы храню в файле GlobalParameters.as в корневом каталоге:

Код AS3:
package {
    public var GlobalParameters:Object  = {
						param1:"value1", 
						param2:"value1", 
						param3:"value1", 
						param4:"value1", 
						param5:"value1" 
					};
}
Доступ из любого класса приложения GlobalParameters.param1, GlobalParameters.param2 и т.д.

Старый 25.04.2010, 22:10
mickfallout вне форума Посмотреть профиль Отправить личное сообщение для mickfallout Найти все сообщения от mickfallout
  № 9  
Ответить с цитированием
mickfallout
 
Аватар для mickfallout

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
mikhailk, у Вас это получаются не константы, их изменить можно. Причем Вы видимо забыли static написать, вообще доступ не получится без извращений...

Добавлено через 13 минут
И автокомплит не будет работать, короче ужас, имхо. По моему лучше хранить константы в тех классах к которым они относятся. В виде статических констант. Это кроме всего прочего ещё и быстрее работать будет.

Старый 25.04.2010, 23:48
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 10  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
BlooDHounD: интерфейс это настоящий класс?

mickfallout: статик не нужен, но GlobalParameters действительно не будет константой, равно как и его ключи. Что касается констант в AS вообще, то, скажем так, они вобщем-то по поведению не константы, т.как они ссылки, а не значения. Т.е. при компиляции упоминания строковых констант не заменяется строками-значениями. Кроме того класс Class динамический, поэтому доступ к его свойствам немного медленнее, чем доступ к свойствам не динамических объектов.
__________________
Hell is the possibility of sanity

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
math , константы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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