Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Программно нарисовать (http://www.flasher.ru/forum/showthread.php?t=149345)

FlashCoder 23.01.2011 15:40

Программно нарисовать
 
Хочется программно с помощью Action Script3 нарисовать такой интерфейс

http://vasyamba.com/url_img/player.png

Возможно такое? Или хотябы частично с помощью картинок, а остальное скриптами
В скрипте будут задаваться размеры плеера и он должен быть в ширину динамический и такде цвета, чтобы можно было менять. Поэтому программная реализация нужна на Action Script3.

Какие классы использовать? И пару примерчиков, если можно

Спасибо

drnet_ua 23.01.2011 18:57

в чем ворос?

класс graphics, рисовать прямоугольниками, прямоугольниками с закр. краями.

немного напряжно с первого раза значек фуллскрин нарисовать, и трехугольничек плей, тоже с краями

Wolsh 23.01.2011 21:02

Значек фуллскрин (как самое сложное))
Код AS3:

var icon:Shape = new Shape();
var backColor:uint = 0x000000;
var foreColor:uint = 0xFFFFFF;
with (icon.graphics)
{
        beginFill(backColor), drawRect(0, 0, 16, 16);
        beginFill(foreColor), drawRect(2, 2, 12, 12);
        beginFill(backColor), drawRect(5, 7, 6, 2);
        beginFill(backColor), drawRect(7, 5, 2, 6);
        beginFill(backColor), drawRect(6, 0, 4, 5), drawRect(6, 11, 4, 5), drawRect(0, 6, 5, 4), drawRect(11, 6, 5, 4);
        beginFill(backColor), drawRect(5, 3, 6, 1), drawRect(5, 12, 6, 1), drawRect(3, 5, 1, 6), drawRect(12, 5, 1, 6);
}
addChild(icon);
icon.x = 50, icon.y = 50;

Добавлено через 1 час 35 минут
Кнопка плей
Код AS3:

var button:Sprite = new Sprite();
button.graphics.beginFill(backColor);
button.graphics.drawRoundRect(0, 0, 50, 32, 8);
addChild(button);
button.x = 50, button.y = 50;
 
var backColor:uint = 0x000000;
var foreColor:uint = 0xFFFFFF;
var icon:Shape = new Shape();
with (icon.graphics)
{
        beginFill(foreColor), moveTo(0, 1);
        lineTo(00, 19), curveTo(0.5, 21, 3, 20);
        lineTo(18, 12), curveTo(20, 10, 18, 8);
        lineTo(03, 00), curveTo(0.5, -1, 0, 1);
}
button.addChild(icon);
icon.x = 18, icon.y = 6;


FlashCoder 23.01.2011 23:07

Wolsh Спасибо за код. Не думал, что сразу готовый код напишуь)
Буду разбираться.
Я только неделю, как Flash начал учить.
Вкратце можешь рассказать, что это за оператор with и как он работает. Я php знаю, и мне бы понять логику этого оператора. С остальными методами и классами я разберусь.



______________________________
Web-программирование

in4core 24.01.2011 00:05

with заменяет объект от длинной писанины . Тоесть было бы без него так :
Код AS3:

icon.graphics.beginFill(foreColor), icon.graphics.moveTo(0, 1);

и т.д.

Wolsh я люблю интересные конструкции, однако данная мне непонятна вообще
объект зарисовывается по строчно
Код AS3:

obj.graphics.beginFill ..... ;
obj.graphics.lineStyle ....;
and so on

А у вас идет через запятую, это че за синтаксис такой?

TanaTiX 24.01.2011 00:47

Цитата:

Значек фуллскрин (как самое сложное))
Я так понимаю, создание подобных конструкций как-то автоматизировано? Можно поподробней как это сделано?

in4core 24.01.2011 00:58

вот и я спрашиваю пояснить синтаксис. очень интересно

Wolsh 24.01.2011 01:24

Запятая? Да в общем, то же, что и точка с запятой ...в данном случае.
То есть тут нет хитрости, как в записи
Код AS3:

var s:String, c:Number, g:uint;

Можно ставить ";" - ничего не изменится. Просто когда операторы пишу в строчку, ставлю запятую.
TanaTiX, Ваш вопрос я просто не понял(( О какой автоматизации речь?

in4core 24.01.2011 01:27

Хм. странно что оператор ; стал равнятся оператору , ! Первый раз такое слышу! Может быть только в данном случае ок, а например в том же самом цикле ты не напишешь уже for ( i =0, i<5, i++) получишь ошибку синтаксиса. Так что тут все таки не обычная ситуация. Про var a,b,c это старая тема знаем

Wolsh 24.01.2011 01:54

Никто не говорил про "равняться". Это разные операторы, просто в данном случае допустимо перечисление через запятую, так же как распространенная запись x=5, y=15; Это одно предложение. В приведенном операторе for() должно быть три предложения. В этих предложениях могут быть перечисления через запятую, но предложений все же три
Код AS3:

for( i = 0, a = 16; i < 9; i ++, a *= i ) {}



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

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