Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Рисовать программно или импортировать графику (http://www.flasher.ru/forum/showthread.php?t=204047)

Isfet 17.10.2013 15:42

Рисовать программно или импортировать графику
 
Здравствуйте, использую flash develop нужно ли по максимуму стараться отрисовать интерфейс программно, а импортировать графику из swc только ту, которую сложно нарисовать программно. Или же всю графику рисовать в адоб иллюстраторе, допустим, (кнопки, скроллы,окна и тп) и растягивать ее под размеры кнопок, кто как делает поделитесь опытом? и в чем плюсы/минусы обоих подходов.

caseyryan 17.10.2013 17:13

как удобнее, так и делать

Плюсы рисования графики вручную:
- удобнее
- быстрее
- красивее
- можно нарисовать многие вещи, которые программно нарисовать практически невозможно

Плюсы рисования кодом:
- меньший вес скомпилированного файла
- можно легко поменять цвета интерфейса
- и... что-то не могу больше плюсов увидеть :D
В остальном это сложнее, дольше и неудобнее

ZicoRio 17.10.2013 22:18

Пожалуй все верно (то что выше).
Добавлю только что касается интерфейса - если нужно настраивать разные визуальные темы,
то тут скорее всего рисовать только программно - легче и точнее управлять.
И есть минус если рисовать не кодом - иногда не удается сделать в точности (до пикселя) что хочется, только программно.

dark256 17.10.2013 22:39

ну да. ручками - красивее.

Isfet 18.10.2013 11:07

Цитата:

Сообщение от caseyryan (Сообщение 1148991)

Плюсы рисования кодом:
- меньший вес скомпилированного файла

Разве это не весомый плюс? или вес не намного меньше и игра не стоит свеч?

Wolsh 18.10.2013 14:23

Вложений: 1
Да нет тут однозначного ответа, все зависит от проекта — насколько сложная графика, какие к ней требования в плане ресайза и других трансформаций (например, для интерфейса в виде кругов и колес не получится применять scale9grid, да?)

(полностью на Graphics, кроме иконок)
TestWareDevelope.swf   (125.7 Кб)


.

caseyryan 18.10.2013 20:04

Wolsh, красота. А можно где-нибудь скачать библиотеку с такими окнами?
Цитата:

Разве это не весомый плюс? или вес не намного меньше и игра не стоит свеч?
Как уже верно подмечено, зависит от проекта. Вообще, учитывая современный интернет, это все больше и больше теряет актуальность. Разница в весе в 200 - 300 килобайт, да даже в пару мегабайт, уже вообще не существенна. А вручную рисовать графику все-таки проще

Wolsh 18.10.2013 21:25

Сорри, так и осталась недоделанной. Я ее броосил еще в 2010. Сейчас даже вижу глюки (если увеличить масштаб, видны косяки в уголках кнопок при обработке заданного скругления 0). Концепция все время меняется, меняется быстрее чем появляется реальный результат, пишу-то в стол, для собственного ЧСВ)))

Akopalipsis 19.10.2013 20:42

Wolsh пока не ушла в небытие тема, хочу спросить - если не секрет, как Вы нарисовали цифры Graphics'сом? Написали, растрировали и потом по координатам границ пикселей нарисовали?

caseyryan 19.10.2013 23:13

Цитата:

как Вы нарисовали цифры Graphics'сом? Написали, растрировали и потом по координатам границ пикселей нарисовали?
ну так ведь
Цитата:

(полностью на Graphics, кроме иконок)
Akopalipsis, да и если делать цифры кодом, зачем там графикс, растеризация и прочие подобные заморочки? Вам не кажется, что это была бы лишняя трата времени и ресурсов процессора и памяти?

Akopalipsis 20.10.2013 01:58

caseyryan за иконки я принял "иконки окна виндовса".
Цитата:

Вам не кажется, что это была бы лишняя трата времени и ресурсов процессора и памяти?
Пока нет, мне бы очень хотелось так графиксом нарисовать)

Wolsh 20.10.2013 14:37

Иконки это иконка пятнашек в левом углу и иконки на кнопках окна _ □ х
Конечно же не проблема и их нарисовать кодом, че там рисовать то) Не помню точно, почему я предпочел битмап, думаю что он просто весил бы меньше и требовал меньше процессора (однозначно) чем рисование вектором с градиентами и матрицами.
Цифры на фишках — ну это смешно.. Это тупо текстфилды, и кажется даже шрифт не внедрен.
Кстати прошу прощения за вес файла — забыл убрать из библиотеки большую картинку, служившую обоями десктопа оконного интерфейса, из теста которого я и сляпал эту флэшку по-быстрому для демонстрации. Ну и там шрифтик псевдопиксельный (которым написано ПЯТНАШКИ) встроен, тоже что-то весит. Это я к тому, что бы вы не подумали, что рисование Графиксом дает такой огромный вес)))

Добавлено через 6 минут
Да, вот код фишки
Код AS3:

package  test.game15 
{
        import flash.display.Shape;
        import flash.display.Sprite;
        import flash.filters.BevelFilter;
        import flash.filters.GlowFilter;
        import flash.text.TextField;
        import flash.text.TextFormat;
 
/* * * * * * * * * *
*                  *
*  @author wolsh  *
*                  *
\* * * * * * * * * */

        public class Chip extends Sprite implements IChip
        {
                private var _tf:TextField;
                private var _embedShape:Shape;
                private var _id:uint;
                private var _w:uint;
                private var _h:uint;
                private var _textBevel:Array =
                [
                        new BevelFilter(1, 45, 0xFFFFFF, 1.0, 0x441100, 0.5, 1, 1, 1, 3, "outer"),
                        new BevelFilter(1, 45, 0xFFFFFF, 1.0, 0x441100, 0.5, 1, 1, 1, 3)
                ];
 
                public function Chip(id:uint)
                {
                        _id = id;
                        _embedShape = new Shape();
                        _tf = new TextField();
                        redraw(0xFFCC99, 0xEEBB88);
                }
 
                public function redraw(borderColor:uint, fillColor:uint):void
                {
                        this.graphics.clear();
                        this.graphics.beginFill(borderColor);
                        this.graphics.drawRoundRect(0,0,50,50,6);
                        _embedShape.graphics.clear();
                        _embedShape.graphics.beginFill(fillColor);
                        _embedShape.graphics.drawRoundRect(8,8,34,34,3);
                        _embedShape.filters = [ new BevelFilter(2, 245, 0xFFFFFF, 0.5, 0x663300, 0.3, 0, 0, 1, 3, "outer") ];
 
                        _tf.width = 30, _tf.height = 30;
                        _tf.x = 9, _tf.y = 8;
                        _tf.selectable = false;
                        _tf.mouseEnabled = false;
                        _tf.defaultTextFormat = new TextFormat("Arial", 24, borderColor, true, false,false,null,null,"center");
                        _tf.text = _id.toString();
                        addChild(_tf);
                        _tf. filters =  _textBevel //[];
                        _tf.text = _id.toString();
                        addChildAt(_embedShape, 0);
                        this.filters = [ new BevelFilter(4, 45, 0xFFFFFF, 0.5, 0x441100, 0.5, 2, 2, 1, 3) ];
                }
 
                public function hilightOn():void
                {
                        redraw(0xFFEEAA, 0xEEDD88);
                        _tf. filters =  _textBevel.concat([new GlowFilter(0xFFF0EE, 1, 18, 18, 1, 3)]);
                }
 
                public function hilightOff():void
                {
                        redraw(0xFFCC99, 0xEEBB88);
                        _tf. filters =  _textBevel //[];
                }
 
                /*  IChip implement  */
 
                public function get id():uint {return _id;} // сеттер не нужен, закрытое свойство.
 
                public function get w():uint {return _w;}
 
                public function set w(value:uint):void {_w = value;}
 
                public function get h():uint {return _h;}
 
                public function set h(value:uint):void {_h = value;}
        }
 
}


Akopalipsis 20.10.2013 17:29

Wolsh я к чему спросил о цифрах, как то я думал, как нарисовать текст графиксом, наподобие написания рукой. С начала и беспрерывно, как рукой. И мне первое что пришло в голову, это растрировать TextField и считать границы пикселей и по этим координатам рисовать.
И очень классно у Вас получилось!

dark256 21.10.2013 04:22

Нет. Не надо. Бред. Рисуем и туда его. Не преумножайте. (с)Оккам


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

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