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

BARTLEBY 02.11.2007 02:13

програмная анимация
 
доброе время суток!
дорогие друзья и коллеги. помогите с проблемой.
есть 4 клипа есть 4 кнопки, при на ведению на кнопки клипы сдвигаються до определленой точки с ускорением.. (чем ближе к точке тем медленнее) это реализуемо легко. это я сделал... вот код
Код:

var xpoz:Number;
var speed:Number = 20;
                mc.onEnterFrame = function():Void  {
                        xpoz = finPoint-this._x;
                        this._x += xpoz/speed;
                };

проблема вот в чем кроется. мне нужно увеличевать и уменьшать определленные клипы. тоесть изначально мы смотри (как бы из камеры) на первый клип. при наведении на кнопку 2 мы отдаляемся от первого клипа и ведем клип номер два проходя по нему (это делает замедление как бы точку конечную далеше ставим и скорость меньше) при наведении на кнопку 3 мы удаляемя еще дальше переходя на клип 3.. далее по анологии.. тоесть клип изначально одного размера потом он уменьшаеться до ОПРЕДЕЛЛЕНОГО размера! напримел был 100% а нам нужно 120 тоесть с координаты 120 по икс клипа он начинает рости до координаты 200 по икс клипа до 120% и остается 120 % тоесть мы находемся на 2 позиции если навести на первую кнопки то мы получаем обратный эфект с позиции 200 по икс клипа до 120 клип уменьшается до 100% + это всё в движении...

думаю изложил всё понятно.и подробно.. очень надеюсь что мне помогут.
всем спасибо

CorC 02.11.2007 10:16

записать ту зависимость xscale от x в onEnterFrame

BARTLEBY 02.11.2007 10:57

а поподробнее можно? что то в виде примера...
я просто уже без сил =(( знаю что от х нужно смотреть
но вот реализовать не как не могу =(

CorC 02.11.2007 11:09

вы же написали как что должно увеличиваться, вот и вставляйте if'ы в onEnterFrame

BARTLEBY 02.11.2007 13:11

хорошо а вы можете накидать пример?

BARTLEBY 02.11.2007 19:08

ну я впринцепи таких ответов и ожидал типа.. "отслеживай икс и юзай _xscale." вообщем по существу ни кто нечего не отвечает =(
очень плохо!
только вот это я всё прекрасно знаю.
вопрос! зачем так отвечать? накрутить себе счетчик ???
если уж знаешь то ответь по существу а не объстрактно не в тему.

Ostgur 02.11.2007 19:42

Вложений: 1
Код:

var xpoz:Number;
var speed:Number = 20;

mc.onEnterFrame = function():Void  {
        xpoz = _xmouse-this._x;
        this._x += xpoz/speed;
        this._xscale += xpoz/speed;
        this._yscale += xpoz/speed;
};

UPDATE: блин, такой офигенный у вас код, что я не смог удержаться и сделать коротенький пример, где б мне такое мышление добыть, чтоб такие формулы придумывать.

BARTLEBY 02.11.2007 22:35

нет это то понятно =) так увеличевать конечно можно =)
но загвоздка та вся в том что мне нужно увеличевать на определенном отрезке координат например начиная со 130 до 230 .. тоесть приходит точка в функцию достигая которой клип должен увеличиваться до (это число тоже передается) 230 мы из 230 вычетаем 100 ... получаем растояние отрезка по икс на котором мувик увеличеться на (проценты увеличения приходят в функцию) 200% .. вот такой вот косяк =) что-то в голове бродит но не рожается как то (((

aQuestion 02.11.2007 22:42

правильно заданный вопрос уже содержит в себе ответ. постараетесь ещё чуть чуть, и ваш вопрос можно будет сразу в AS переводить.

Ostgur 02.11.2007 22:59

Код:

var xpoz:Number;
var speed:Number = 20;

mc.onEnterFrame = function():Void  {
       
        xpoz = _xmouse-this._x;
       
        if((_xmouse > 100) and (_xmouse < 350)){
        this._x += xpoz/speed;
        this._xscale += xpoz/speed;
        this._yscale += xpoz/speed;
        }
};



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

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