Форум 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=168810)

Шурик_2 24.09.2011 18:39

Как сделать радиальный градиент заполняющий круг?
 
В образовании градиента участвуют два цвета.

stweet 24.09.2011 18:43

Тут.

goodguy 24.09.2011 18:52

Вот так:
Код AS3:

package {
        import flash.display.GradientType;
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.geom.Matrix;
 
        public class Main extends Sprite {
 
 
 
                public function Main():void {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        var circle:                Sprite                = new Sprite();
                        circle.x                                        = 200;
                        circle.y                                        = 200;
                        addChild(circle);
                        var radius:                Number                = 50;
                        var matrix:                Matrix                = new Matrix();
                        matrix.createGradientBox(radius * 2, radius * 2, 90 * Math.PI / 180, radius, radius);
                        circle.graphics.lineStyle(1, 0x000000, .3);
                        circle.graphics.beginGradientFill(GradientType.RADIAL, [0xFFFFFF, 0xC0C0C0], [1, 1], [0, 255], matrix);
                        circle.graphics.drawCircle(100, 100, radius);
                }
 
        }
 
}


Шурик_2 28.09.2011 01:18

Цитата:

Сообщение от goodguy (Сообщение 1034427)
Вот так:
Код AS3:

package {
        import flash.display.GradientType;
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.geom.Matrix;
 
        public class Main extends Sprite {
 
 
 
                public function Main():void {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        var circle:                Sprite                = new Sprite();
                        circle.x                                        = 200;
                        circle.y                                        = 200;
                        addChild(circle);
                        var radius:                Number                = 50;
                        var matrix:                Matrix                = new Matrix();
                        matrix.createGradientBox(radius * 2, radius * 2, 90 * Math.PI / 180, radius, radius);
                        circle.graphics.lineStyle(1, 0x000000, .3);
                        circle.graphics.beginGradientFill(GradientType.RADIAL, [0xFFFFFF, 0xC0C0C0], [1, 1], [0, 255], matrix);
                        circle.graphics.drawCircle(100, 100, radius);
                }
        }
}


Scene 1, Layer 'Layer 1', Frame 1, Line 1 1037: Packages cannot be nested.

TanaTiX 28.09.2011 10:32

Пишите код в классах

Шурик_2 28.09.2011 22:17

У меня не работает вышеприведенный код. Оформил его как класс "кристалл", определил в пакет as3.clss, поместил в папку as3/clss. Создал новый документ AS 3.0 в первом кадре прописал следующий код:
Код AS3:

1 import as3.clss.crystal;
2 var example:crystal = new crystal();
3 addChild(crystal);

При компиляции возникла ошибка:
Scene 1, Layer 'Layer 1', Frame 1, Line 3 1067: Implicit coercion of a value of type Class to an unrelated type flash.display:DisplayObject.
Как "нарисовать" этот круг на экране? В непонятках....

КорДум 28.09.2011 22:23

Код AS3:

addChild(example);

Пишите код в классах.

Шурик_2 28.09.2011 22:37

Блин, мой косяк:D
Всё получилось. Простите мою невнимательность!!!

Добавлено через 4 минуты
Доп. вопрос: где можно получить HEX-коды цветов?

КорДум 28.09.2011 23:04

Цитата:

Доп. вопрос: где можно получить HEX-коды цветов?
Любой графический редактор.

goodguy 29.09.2011 07:23

Во флешдевелоп есть офигенная фича ctrl + shift + k появляется цветовая палитра, из которой выбранный цвет сразу добавится в код. Удобная штучка )


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

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