PDA

Просмотр полной версии : Про шрифты, embed и enum.


jaguard
22.08.2008, 04:32
1. [embed] - это нормально, не влияет на производительность ? Если я скажем в класс внедрю 15 вариантов спрайтов, которые он может принимать, но грузить буду только один(параметром в конструкторе) - не получится ли так, что при создании экземпляра класса будет создаваться и каждый из этих внедренных битмапов?
Нет, понятно что я могу создать класс-контейнер, из которого и буду получать битмапы, но нужно ли это?

2. Можно ли сделать некие объекты, которые будут String, но которые также можно и использовать в виде индекса(int)? Ну, объединить String и int. Чтобы в местах, критичных по производительности использовать int, ну и чтобы можно было делать пробег по всем вариантам, но в остальных местах можно было бы использовать говорящие названия, типа
FireMissile("Nuke", "40 Megaton");

В общем, мне не хватает enum из С++ :). Тут конечно приятно, что можно использовать String в switch-case, в отличии от C++, но производительность такого решения врядли высока.


3. Можно ли управлять текстом более "продвинуто", нежели изменять размер, шрифт и добавлять подчеркивание? Например, сделать желтый шрифт с зеленой обводкой, внутренней и внешней тенью, и с фаской. Глоу добавить там. Ну, типа того как это можно сделать в фотошопе, изменением свойств слоя, на котором расположен текст.

Если таких возможностей нет, может существует готовое решение по использованию нагенеренных в фотошопе шрифтов со стилем? Ну, экспортировать в битмап, загрузить и использовать как обычный шрифт, который можно прилепить к Textfield.

PeTa4eK
22.08.2008, 07:05
3. Все это можно сделать. В флеш есть система фильтров. Учитесь и делайте все что захочите

etc
22.08.2008, 10:42
1. Не влияет;
2. Константы не рулят?

jaguard
22.08.2008, 19:23
3. Все это можно сделать. В флеш есть система фильтров. Учитесь и делайте все что захочите
А примеров, часом, нет? Например, обвести текст.


2. Константы не рулят?

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

Яски
22.08.2008, 20:02
Это будет проблемой плохой структуры проекта, а не медленной работой флеша. И вообще etc имел ввиду другое. Если объявить класс с несколькими константами

class Colors {
static const RED:uint = 0xFF0000;
static const GREEN:uint = 0xFF00;
static const BLUE:uint = 0xFF;
static const MAGNETA:uint = 0xFFF000;
}
var color:uint = Colors.BLUE;

switch (color) {
case Colors.GREEN:
// Что-то
break;
}

Это вас не устроит?

jaguard
22.08.2008, 21:43
Это будет проблемой плохой структуры проекта, а не медленной работой флеша. И вообще etc имел ввиду другое. Если объявить класс с несколькими константами


А, понял, спасибо. Я почему-то думал только о варианте static const RED:String = "red";
Пожалуй, так сойдет :).