Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Iwamotoscott (http://www.flasher.ru/forum/showthread.php?t=162487)

banji 01.08.2011 22:58

Iwamotoscott
 
Всем привет!
Подскажите пожалуйста направление для воспроизведения похожего эффекта как на сайте http://www.iwamotoscott.com/

Я так понимаю там много коротких линий которые образуют длинные линии, при наведении они меняют градус и расширяются.

Спасибо.

-De- 02.08.2011 00:53

Если расстояние от курсора до центра отрезка меньше R, то повернуть отрезок на курсор.

silin 02.08.2011 01:31

направление
Код AS3:

package
{
        import flash.display.*;
 
        public class Main extends Sprite
        {
 
                public function Main():void
                {
 
                        stage.scaleMode = StageScaleMode.NO_SCALE;
                        stage.align = StageAlign.TOP_LEFT;
 
                        var d:Number = Math.SQRT2 * Line.SIZE;
                        var d2:Number = d / 2;
                        for (var i:int = 0; i < 20; i++)
                        {
                                for (var j:int = 0; j < 10; j++)
                                {
                                        this.addChild(new Line(i * d + d2, j * d + d2));
                                }
                        }
 
                }
 
        }
 
}
import flash.display.*;
import flash.events.*;
 
class Line extends Sprite
{
        public static const SIZE:Number = 30;
        public static const R2:Number = 1.5e4;
        public static const RAD_GRAD:Number = 180 / Math.PI;
        public var tR:Number = 0;
 
        public function Line(x:Number, y:Number)
        {
                this.x = x;
                this.y = y;
                this.graphics.lineStyle(0, 0x808080);
                this.graphics.moveTo( -SIZE, 0);
                this.graphics.lineTo(SIZE, 0);
                this.addEventListener(Event.ADDED_TO_STAGE, this_addedToStage);
        }
 
        private function this_addedToStage(e:Event):void
        {
                removeEventListener(Event.ADDED_TO_STAGE, this_addedToStage);
                this.addEventListener(Event.ENTER_FRAME, this_enterFrame);
        }
 
        private function this_enterFrame(e:Event):void
        {
                var dX:Number = parent.mouseX - this.x;
                var dY:Number = parent.mouseY - this.y;
                tR = dX * dX + dY * dY < R2 ? RAD_GRAD * Math.atan2(dY, dX) : 45;
                this.rotation += 0.5 * (tR - this.rotation);
        }
 
}


NikolyA 02.08.2011 03:34

Силин, ты как всегда крут!!!

tsarapkabel 02.08.2011 12:25

Да, подсказал направление :D А что за магическое "1.5e4" ?

bav 02.08.2011 12:33

Экспоненциальная запись: 1.5e4 = 1.5 * 10000 = 15000

tsarapkabel 02.08.2011 12:50

Ага, экспоненциальная. Спрошу по-другому: что за магическое "15000" ? Откуда оно взялось вообще?

etc 02.08.2011 13:04

Цитата:

Сообщение от tsarapkabel (Сообщение 1017091)
Ага, экспоненциальная. Спрошу по-другому: что за магическое "15000" ? Откуда оно взялось вообще?

Меджик намбер.

silin 02.08.2011 13:33

>>Откуда оно взялось вообще?
дада Меджик намбер, обычно с потолка :)

чувствительность реагирования на мышь: квадрат расстояния до курсора


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

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