Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > ActionScript 1,2 > програмный tween


Автор: VingradFan 12.2.2006, 21:10
всем привет smile посмотрите ссылку
http://www.meine.svalka.de/meine_svalka_ru/startR.html
потяните за квадратик и отпустите!!!я поработал и вот что у меня получилось...
не очень плавно!!!что делать???я исходник даю помогиет доработать...плиз!!! smile

Автор: aksyos 12.2.2006, 23:33
А при чем тут _root?
Вооще, есть такая команд trace(); - полезная вещь при отладке.
Код

centerx = Stage.width/2;
centery = Stage.height/2;

Вот так будет работать.

Автор: AlDev 13.2.2006, 04:13

 ! 
AlDev
VingradFan, еще один раз создашь тему не в том разделе - буду наказывать. Общие вопросы по Flash пиши в форуме Flash. По ActionScript 1,2 - в ActionScript 1,2

Автор: VingradFan 13.2.2006, 14:47
aksyos, елки палки ты не понял вопроса!!!!
я спрашиваю как сделать движение более плавным!!! http://www.meine.svalka.de/meine_svalka_ru/startR.html
в этой ссылке движение просто изумительное а у меня отстой какойто!!! smile

Автор: AlDev 13.2.2006, 14:59
Да, и вот еще что:
Модератор: Название темы должно отражать ее суть!

далее:
посмотри вот этот код:
Код

//при отпускании возвращается на центр экрана
mc.onRelease = function() {
    onEnterFrame = function () {
        mc._x += (centerx-mc._x)/0.6;
        mc._y += (centery-mc._y)/0.6;
    };
};

за каждый шаг ты пытаешься двигаться на расстояние, большее чем расстояние от центра сцены до клипа. Надо просто поменять коэффициент, например:
Код

//при отпускании возвращается на центр экрана
mc.onRelease = function() {
    onEnterFrame = function () {
        mc._x += (centerx-mc._x)/1.6;
        mc._y += (centery-mc._y)/1.6;
    };
};

Автор: VingradFan 13.2.2006, 15:04
AlDev, ты наверняка не проверил свой код!!!!
Цитата

//при отпускании возвращается на центр экрана
mc.onRelease = function() {
    onEnterFrame = function () {
        mc._x += (centerx-mc._x)/1.6;
        mc._y += (centery-mc._y)/1.6;
    };
};

при этом он будет с замедлением приближаться к точке!!!!
а при значении равном 0.5 - 1 будет эффект желе!!! тоесть он проскочит а потом вернется на место!!!
может там что то другое???

Автор: AlDev 13.2.2006, 15:12
тогда и пиши, что тебе нужен эффект желе ;) Сначала пишешь, что что-то не правильно работает. Потом пишешь, что не плавно. А теперь еще и про желе вспоминаешь.

Код

//задаем центр экрана куда будет возвращаца клип
centerx = Stage.width/2;
centery = Stage.height/2;
//при нажатии клип движеца за мыщью
mc.onPress = function() 
{
    this.onEnterFrame = function () 
    {
        this._x = _xmouse;
        this._y = _ymouse;
    };
};
//при отпускании возвращается на центр экрана
mc.onRelease = function() 
{
  delete this.onEnterFrame;
  var tweenX = new mx.transitions.Tween(this, "_x", mx.transitions.easing.Back.easeOut, this._x, centerx, 20);
  var tweenY = new mx.transitions.Tween(this, "_y", mx.transitions.easing.Back.easeOut, this._y, centery, 20);
};

Автор: VingradFan 13.2.2006, 15:21
я конечно извиняюсь но......как ты написал последний код ничо ваще не происходит при отпускании!!!smile

Автор: AlDev 13.2.2006, 15:26
VingradFan,
хм. у меня все работает. У тебя какой Flash?

Автор: VingradFan 13.2.2006, 15:51
у меня професионал м-икс....
скинь что получилось посмотрю!!!
мое мыло oleinikov@inbox.ru
или прям в форум кинь

Автор: AlDev 13.2.2006, 16:04
лови

Автор: VingradFan 13.2.2006, 16:11
AlDev, УРЯЯЯЯЯЯЯЯЯЯЯЯЯ!!!! все работает!!!
ток последний вопрос остался какую часть кода надо изменить чтобы скорость менялась???
и еще.... уже больно мало он тудысюды колыхается!!! что надо сделать чтобы сильнее колыхалось??

Автор: AlDev 13.2.2006, 16:19
http://actionscript.org/tutorials/advanced/Tween-Easing_Classes_Documented/index.shtml

Автор: VingradFan 13.2.2006, 17:12
вопрос решен!!!!
(благодаря Алексу smile)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)