![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2011
Сообщений: 42
|
Доброго времени.
Вопрос вот какой - нужно сделать файл (класс) с настройками для всего приложения. При этом хочу, чтобы обращение к настройкам в итоге выглядело так: То есть, чтобы в классе были группы настроек для каждого компонента в программе. Настройки какой-то панельки, например. А группа уже должна содержать все нужные значения - цвет панельки, размер и т.д. Если бы в AS были структуры, можно было бы сделать статическую структуру для каждой группы, со всеми нужными значениями. А без этого не знаю, как написать. Вложенных классов нет. Можно было бы сделать пакет с настройками и создавать по отдельному классу для каждой группы, но это чересчур. Я хочу, чтобы всё было в одном файле, с intelliSense, все дела... Есть какое-то простое решение? |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Последний раз редактировалось mikhailk; 07.05.2011 в 18:10. |
|
|||||
|
Регистрация: Feb 2011
Сообщений: 42
|
Спасибо, но вот не зря написал про intelliSense. В этих случаях компилятор уже не видит, какие значения есть в объекте/узлы в XML. Придется без этого жить?
IntelliSense - это я про Code Completion. Последний раз редактировалось Sharkow; 07.05.2011 в 18:26. |
|
|||||
|
Цитата:
Цитата:
Тем более, что если говорить о C++, то не особо-то классы отличаются от структур. ЗЫ Насчет вложенных классов: Вы можете объявить несколько классов в одном AS файле, единственное НО состоит в том, что только один из этих классов может быть объявлен как public, остальные должны быть internal (или вообще без модификатора доступа, что по сути одно и то же). Так что единственный способ работать с intelly sense - это плодить кучу классов, в одном или нескольких файлах
__________________
...вселенская грусть |
|
|||||
|
Цитата:
package { public class Preferences { public static const preferencesGroup1:ReferenceGroup1 = new ReferenceGroup1(); public static const preferencesGroup1:ReferenceGroup2 = new ReferenceGroup2(); } } class ReferenceGroup1 { public var color:uint; public var indent:int; } class ReferenceGroup2 { public var color:uint; public var indent:int; } Цитата:
package { public class PanelFactory { public static function newDefaultPanel():PanelBase { var panel:CustomizedPanel = new CustomizedPanel(); panel.bgColor = 0xff00ff; panel.borderColor = 0xff0000; ... return panel; } public static function newDialogPanel():PanelBase { var panel:CustomizedPanel = new CustomizedPanel(); panel.bgColor = 0xff0000; ... return panel; } public static function newButifulPanel():PanelBase { var panel:ExtendedCustomizedPanel = new ExtendedCustomizedPanel(); panel.bgColor = 0xffffff; ... return panel; } } } Последний раз редактировалось expl; 07.05.2011 в 19:00. |
|
|||||
|
@expl
А у Вас при таком раскладе автокомплит показывает поля вложенных классов? у меня в FD - нет (да по идее и не должен нигде, кроме как внутри пакета с классом настроек). Та что я бы отдельными файлами делал
__________________
...вселенская грусть |
|
|||||
|
Регистрация: Feb 2011
Сообщений: 42
|
gloomyBrain,
А да, в одном файле объявить несколько классов - это вполне подходит, только вот как сделать доступ к этим классам? package GalleryDraftPack { public class SHPreferences{ public static function get group1():Class{ return Group1; } } } internal class Group1{ public static const... } Цитата:
expl, Во-первых, да, при Вашем подходе автокомплит работать не будет, а во-вторых, new тут совсем не к месту. Разве что синглтон делать... Цитата:
Последний раз редактировалось Sharkow; 07.05.2011 в 19:06. |
|
|||||
|
Цитата:
Цитата:
2. Синглтон? Зачем? Этот класс и так никто вне Preferences не сможет создать. Да и зачем ему быть одному? Вдруг у вас будут 2 или более групп с одинаковыми настройками? Цитата:
Последний раз редактировалось expl; 07.05.2011 в 19:17. |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Цитата:
Что мешает сделать пакет Preferences, а preferencesGroup1 - классом со статическими переменными в нем? И автокомплит работает. И преносить каталогом. Добавлено через 6 минут Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 03:19. |
|
|
« Предыдущая тема | Следующая тема » |
|
|