Цитата:
|
Если бы в AS были структуры, можно было бы сделать статическую структуру для каждой группы, со всеми нужными значениями. А без этого не знаю, как написать. Вложенных классов нет. Можно было бы сделать пакет с настройками и создавать по отдельному классу для каждой группы, но это чересчур. Я хочу, чтобы всё было в одном файле, с intelliSense, все дела... Есть какое-то простое решение?
|
Ну раз структура нужна статическая, какая разница будет она классом или структорой? И чем таким объявление класса в AS3 тяжелее объявления структуры в C++?

Код AS3:
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;
}
Цитата:
|
Настройки какой-то панельки, например. А группа уже должна содержать все нужные значения - цвет панельки, размер и т.д.
|
Чем панельки настраивать и плодить кучу копипасты по всему приложению с кодом их создания, может оказаться проще влепить статичные фабрики этих панелек (подход ни разу не правильный - все оказывается завязано на фабрику, но компонентам, которые впринципе нельзя использовать вне приложения можно разрешить пользоваться этой фабрикой):

Код AS3:
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;
}
}
}