Форум 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)
-   -   Эффект 3d за счет реакции слоев на движении мыши (http://www.flasher.ru/forum/showthread.php?t=132277)

mtbio 08.11.2009 15:03

Эффект 3d за счет реакции слоев на движении мыши
 
Всем привет! Ума не приложу за счет какого скрипта достигается такой эффект - www.fieroanimals.com/
На первый взгляд используются несколько слоев которые которые по разному и с разной скоростью реагируют на движение мыши. Для меня стоит задача сделать такой же эффект и в дальнейшем подобные эффекты.
Мне нужна ваша помощь так как я мягко скажем не силен в скриптах.

Пример эффекта http://fieroanimals.com/

udaaff 08.11.2009 18:46

Изменение координат и размеров объектов в зависимости от координат мыши. Вот и весь эффект.

mtbio 09.11.2009 11:20

А можно пример со скриптом? Покопаться в нем понять, что к чему. Я полный ноль в скриптах

mooncar 09.11.2009 11:40

Этот эффект называется "параллакс" (parallax). Поищите.
Например, вот тут есть пример с исходником.
(Реализация несколько морально устарела, но для понимания принципов эффекта посмотреть можно).

mtbio 09.11.2009 16:59

Вложений: 1
Спасибо за наводку. Нашел урок, сделал все по аналогии но вот проблема в чем, при движении слоев они разъезжаются. То есть как ограничить движение мувика?

1. Если мувик шире сцены - чтобы его края не заходили внутрь сцены.
2. Если мувик Уже сцены - чтобы его края не выходили за пределы сцены.

Код AS1/AS2:

import flash.filters.BlurFilter;
 
w = Stage.width;
speed = 20;
 
this.onMouseMove = function() {
 
        l1_xpos = w/2-(_xmouse-w/2);
        l2_xpos = w/2-(_xmouse-w/2)/2;
        l3_xpos = w/2-(_xmouse-w/2)/4;
// создаем событие возникающее при переходе на новый фрэйм
        this.onEnterFrame = function (){
                layer1_mc._x +=(l1_xpos-layer1_mc._x)/speed;
                layer2_mc._x +=(l2_xpos-layer2_mc._x)/speed;
                layer3_mc._x +=(l3_xpos-layer3_mc._x)/speed;
                layer1_mc.filters = [new BlurFilter(Math.abs((l1_xpos-layer1_mc._x)/speed*2), 0, 3)];
                layer2_mc.filters = [new BlurFilter(Math.abs((l2_xpos-layer2_mc._x)/speed*2), 0, 3)];
                layer3_mc.filters = [new BlurFilter(Math.abs((l3_xpos-layer3_mc._x)/speed*2), 0, 3)];
        }
}


mtbio 12.11.2009 21:37

люди добрые ну покажите пожалуйста как ограничить мувик .... :)


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

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