Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   прорисовка простых геом.фигур "в одну линию" (http://www.flasher.ru/forum/showthread.php?t=97965)

Kikasso 04.07.2007 01:09

А вот это видели?
http://flasher.ru/forum/showpost.php...17&postcount=6

PS/ Подводные камни? Попробуйте на ваши круги навесить что-нибудь onPress и покликайте.

Torero 04.07.2007 01:16

2iNils: Нет. Честно заработал плюс за расплывчатое название темы. Про закрытие топиков речи никогда не шло.
2Kikasso: Нет.Спасибо.

Kikasso 04.07.2007 01:25

Цитата:

Сообщение от Torero
2iNils: Нет. Честно заработал плюс за расплывчатое название темы. Про закрытие топиков речи никогда не шло.

http://flasher.ru/forum/showpost.php...53&postcount=5

PS/ Спасибо iNils'у за круглый отрезок, очень веселый способ.

Torero 04.07.2007 01:33

Я не перечитываю свои топики после того как получил ответ.
Приношу извинения за невнимательность и вынужденный флуд.

iNils 04.07.2007 02:41

Цитата:

Сообщение от Kikasso
PS/ Спасибо iNils'у за круглый отрезок, очень веселый способ.

Продолжение. Изврат конечно :D
Код:

import flash.display.BitmapData;
import flash.geom.*;
////
function bitmapDrawCircle (radius:Number, color:Number, alpha:Number):BitmapData {
        var bmp:BitmapData = new BitmapData (radius + 2, radius + 2, true, 0);
        var d:Number = this.getNextHighestDepth ();
        var mc:MovieClip = this.createEmptyMovieClip ("mc" + d, d);
        var xy:Number = radius / 2 + 1;
        mc.lineStyle (radius, color, alpha || 100);
        mc.moveTo (xy, xy);
        mc.lineTo (xy + .15, xy);
        bmp.draw (mc);
        mc.removeMovieClip ();
        return bmp;
}
function bitmapDrawCircleGradient (radius:Number, fillType:String, colors:Array, alphas:Array, ratios:Array, matrix:Object, spread:String, inter:String, ratio:Number):BitmapData {
        var d:Number = this.getNextHighestDepth ();
        var mc:MovieClip = this.createEmptyMovieClip ("mc" + d, d);
        //// создаем маску
        var bmpMaska:BitmapData = new BitmapData (radius + 2, radius + 2, false, 0);
        var xy:Number = radius / 2 + 1;
        mc.lineStyle (radius, 0xFFFFFF);
        mc.moveTo (xy, xy);
        mc.lineTo (xy + .15, xy);
        bmpMaska.draw (mc);
        mc.clear ();
        //// создаем градиент
        var bmp:BitmapData = new BitmapData (radius + 2, radius + 2, true, 0);
        mc.beginGradientFill (fillType, colors, alphas, ratios, matrix, spread, inter, ratio);
        mc.moveTo (1, 1);
        mc.lineTo (1, radius + 1);
        mc.lineTo (radius + 1, radius + 1);
        mc.lineTo (radius + 1, 1);
        mc.lineTo (1, 1);
        mc.endFill ();
        bmp.draw (mc);
        mc.removeMovieClip ();
        bmp.copyChannel (bmpMaska, bmpMaska.rectangle, new Point (0, 0), 1, 8);
        return bmp;
}
/////
var mc0:MovieClip = this.createEmptyMovieClip ("mc0", 0);
var bmp0:BitmapData = bitmapDrawCircle (75, 0xFF0000, 75);
mc0.attachBitmap (bmp0, 0);
mc0._x = mc0._y = 100;
////
var mc1:MovieClip = this.createEmptyMovieClip ("mc1", 1);
colors = [0xFF0000, 0x0000FF];
fillType = "radial";
alphas = [100, 100];
ratios = [0, 0xFF];
spreadMethod = "reflect";
interpolationMethod = "linearRGB";
focalPointRatio = 0.9;
var matrix:Matrix = new Matrix ();
matrix.createGradientBox (75, 75, Math.PI, 0, 0);
var bmp1:BitmapData = bitmapDrawCircleGradient (75, fillType, colors, alphas, ratios, matrix, spreadMethod, interpolationMethod, focalPointRatio);
mc1.attachBitmap (bmp1, 0);
mc1._x = mc1._y = 200;


Kikasso 04.07.2007 07:52

Это не изврат, это уже способ. Очень познавательно.


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

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