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

alex001 09.03.2011 23:01

создание движения мувика кнопкой.
 
здравствуйте.
есть две кнопки и мувик. при нажатии на первую кнопку, мувик должен сдвинуться 200 пикслелей влево и на второй соответствнно вправо. движение должно плавно начаться и плавно кончиться. примерно за две секунды. вроде не сложно, но почему то не получается.
надеюсь на вашу помощ.

mooncar 09.03.2011 23:16

Что конкретно не получается?
Приведите код.

alex001 09.03.2011 23:54

я вообще не знаю как реализовать это. я могу реализовать простое перемещение с setInterval, например, но плавность я сделать не могу.

mooncar 10.03.2011 00:49

Вложений: 1
Проще всего - с помощью класса Tween.
См. пример. Если я неверно понял насчет пределов движения - думаю что разберетесь в синтаксисе и легко поправите.
Залезайте в хелп, найдете там виды движения - замедления/ускорения, бонусные движения, имитации эластичной остановки и т.д.

А вообще, если делать "в лоб", с помощю того же setInterval, нужно просто ввести множитель для величины одного шага, и с каждым вызовом функции для движения изменять этот множитель в ту или иную сторону.

В дальнейшем советую перейти с адобовского Tween, например, на TweenLite от Greensock. Он более производителен и гибче. Да и нужный тип движения легко подобрать прямо у них на сайте в демо-примере.

А вот сам код и пример ниже
Код AS1/AS2:

import mx.transitions.Tween;
 
var x0:Number = mc._x ;
 
btn_left.onRelease = function()
{
        mc.tween.stop();
        mc.tween = new Tween(mc, '_x', mx.transitions.easing.Strong.easeInOut, mc._x, x0 - 200, 2, true);
};
 
btn_right.onRelease = function()
{
        mc.tween.stop();
        mc.tween = new Tween(mc, '_x', mx.transitions.easing.Strong.easeInOut, mc._x, x0 + 200, 2, true);
};


alex001 10.03.2011 10:57

да, это то что нужно. немного изменил, чтобы нельзя было нажать во время движения и чтобы можно было его двигать более одного раза и получилось именно как мне и нужно было. огромное спасибо за вашу помощь.

mooncar 10.03.2011 11:00

Пожалуйста. Для "спасиб" - кнопочка с весами :)
Цитата:

Сообщение от alex001 (Сообщение 979202)
чтобы можно было его двигать более одного раза

Так и у меня можно двигать более одного раза. Разве нет? Или "более одного раза" - это в какую-то сторону более одного раза?
А почему нельзя нажимать во время движения? Последний вопрос - простое любопытство

alex001 10.03.2011 13:01

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


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

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