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

PhoenixX 04.05.2006 21:46

динамическая прорисовка рандомных линий за курсором мыши.
 
Динамическая прорисовка рандомных линий за курсором мыши, которые в свою очередь трансформируются в зависимости от направления и скорости движения курсора мыши.
вот линк на подобный эффект: http://www.sun-ringle.com/
никак не могу понять принципа создания.

у кого какие идеи на счет создания подобного?

Nirth 04.05.2006 22:00

1) причем тут AS2.0?

PhoenixX 04.05.2006 22:12

Лучше бы подсказал что-то толковое...

Nirth 04.05.2006 22:14

изменил название топика, удалил префикс AS2 дабы не путало народ.
в слейдующий раз называйте темы осмысленно.

silin 04.05.2006 22:28

Код:

// .. IMAGINATION
// .. Created by Paul Neave
// .. www.neave.com
p = new Array();
count = 0;
p[count] = {x:_xmouse, y:_ymouse, w:0, col:0};
count++;
rand = Math.random;
sin = Math.sin;

r = 255; //rand() * 128 + 127;
g = 127; //rand() * 128 + 127;
b = 0; //rand() * 128 + 127;
w = 0;
ri = 0.02; //rand() * 0.05;
gi = 0.015; //rand() * 0.05;
bi = 0.025; //rand() * 0.05;

this.onEnterFrame = function() {
        vx = _xmouse - oldx + rand() * 2 - 1;
        vy = _ymouse - oldy + rand() * 2 - 1;
        oldx = _xmouse;
        oldy = _ymouse;
        p[count] = { x:_xmouse, y:_ymouse, vx:vx * 0.5, vy:vy * 0.5, w:(sin(w += 0.2)*5 + 5),
                                          col:(sin(r += ri) * 128 + 127) << 16  |  (sin(g += gi) * 128 + 127) << 8  |  (sin(b += bi) * 128 + 127) };
        count++;
        clear();
        moveTo(_xmouse, _ymouse);
       
        for (var i in p) {
                lineStyle(p[i].w, p[i].col);
                p[i].x += p[i].vx;
                p[i].y += p[i].vy;
                if (p[i].y > 380) {
                        p[i].y = 380;
                        p[i].vy *= -0.5;
                        p[i].vx *= .95;
                }
                if (i) curveTo(p[i].x, p[i].y, (Number(p[i].x) + Number(p[i-1].x))/2, (Number(p[i].y) + Number(p[i-1].y))/2);
                if (p.length > 50) {
                        p.splice(0, 1);
                        count--;
                }
        }
};


Nirth 04.05.2006 22:36

Кстати первый вроде бы сделал этот эффект автор сайта Microbians.com

silin 04.05.2006 22:42

не берусь судить,
цитировал автора (Paul Neave)...

PhoenixX 04.05.2006 23:52

сенькс!!!


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

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