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

nicon 06.04.2011 10:02

Вращение (с остановкой)
 
В общем, понятно что я новичек )) помогите плиз нуна плавно закрутить объект на несколько секунд и также плавно его остановить. С первой частью я справился а вот плавной остановки ни как добиться не могу ))
Код AS1/AS2:

onClipEvent (load) {
  xspeed = 0;
}
onClipEvent (enterFrame) {
    _rotation += xspeed;
        xspeed +=0.13;
 
 
}


mooncar 06.04.2011 11:04

1. Не пишите больше код на объетах.
2. Называете ваш объект на сцене (Instance name), например, mc, тогда в кадре запишите такой читерский код:
Код AS1/AS2:

import mx.transitions.Tween;
import mx.transitions.easing.*;
var tw:Tween = new Tween(mc, '_rotation', Strong.easeInOut, 0, 720, 5, true);

тут 0 - начальный угол, 720 - конечный угол (два раза по 360, поставьте сколько нужно), 5 - время в секундах, true - указывает на то, что исп. секунды, а не фреймы
easeInOut - указывает на ускорение и замедление в начале и конце соотв.
Единственный минус - участка с чисто равномерным движением при такой записи тут не будет, ну может быть вас устроит.


3. При вашем алгоритме для решения задачи в какой-то момент времени нужно было бы сперва прекратить прирост "скорости", а потом поменять знак:
Код AS1/AS2:

xspeed -=0.13;

и отследить, чтобы "скорость" не стала меньше нуля, тогда прекратить ротацию.

4. Пишите на форуме грамотно на русском, без "нуна", с запятыми и без закрывающих скобок ни к месту.

nicon 06.04.2011 14:00

Вложений: 1
У меня почему то получилось немного не то, что бы хотелось.
Я наверно не правильно описал проблему. Собственно нужно чтобы при нажатии на кнопку объект быстро разогнался, а после 5 секунд плавно остановился. То, что предложили вы конечно вариант, но либо я ничего не понял, либо корректно работать не хочет )). Так, что я пока на том же уровне что и был )).
Я пробовал внести условие, но что-то не выходит ничего, вращение продолжается на той скорости где прекратилось разгоняться:
Код AS1/AS2:

if(xspeed > 5){
xspeed -=0.13;
}


mooncar 06.04.2011 14:41

Цитата:

Сообщение от mooncar (Сообщение 986985)
2. Называете ваш объект на сцене (Instance name), например...

Вы имя не дали, у вас должно стоять на сцене имя downplanescript.
Отцентровать также придется контент мувика относительно нуля координат, если хотите, чтобы вокруг геометрического центра крутилось.

И один кадр оставьте на таймлайне!

nicon 06.04.2011 20:22

Цитата:

Сообщение от mooncar (Сообщение 987058)
Вы имя не дали, у вас должно стоять на сцене имя downplanescript.
Отцентровать также придется контент мувика относительно нуля координат, если хотите, чтобы вокруг геометрического центра крутилось.

И один кадр оставьте на таймлайне!

Оно и стоит, если вы о названии movie clip'a.
Ну у ня сцена собтвенно 500х500 я пытался кнопку центролизовать по координатам, чет не выходит, все равно кнопка улетает:
Код AS1/AS2:

onClipEvent (enterFrame) {
btn.x = 250;
btn.y=250;
}

Кстати как скорость увеличить в том магическом коде что выше вы расположили?

mooncar 06.04.2011 20:38

Вложений: 1
Третий раз вам говорю - имя на сцене, т.е имя экземпляра, instance name. Зайдите на вкладку свойств мувика на сцене и задайте имя.
Как вы назвали в библиотеке - не имеет никакого значения для ActionScript.

Не пишите код на объектах - тоже повторюсь.

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

Это не AS3, это решение в AS2, ветка форума для AS2.

Какой у вас CS? Пример вам сделаю...
Во вложении то, что получится. На сцене мувик mc, код в кадре вышеприведенный. Ускорить можно как угодно.

nicon 06.04.2011 21:06

Вложений: 1
Цитата:

Сообщение от mooncar (Сообщение 987187)
Третий раз вам говорю - имя на сцене, т.е имя экземпляра, instance name. Зайдите на вкладку свойств мувика на сцене и задайте имя.
Как вы назвали в библиотеке - не имеет никакого значения для ActionScript.

Не пишите код на объектах - тоже повторюсь.

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

Это не AS3, это решение в AS2, ветка форума для AS2.

Какой у вас CS? Пример вам сделаю...
Во вложении то, что получится. На сцене мувик mc, код в кадре вышеприведенный. Ускорить можно как угодно.

Был CS5, щас поставил CS3. Нашел, вписал туда название - эффект один и тотже. Может че не так делаю помсмотри плиз.

mooncar 06.04.2011 21:37

Вложений: 1
Судя по вашему примеру, вы ничего не сделали из того, что я вам говорил.
CS3 сейчас нет под рукой. Дайте уже инстанс-имя мувику НА СЦЕНЕ, которое AS использует.
Зайдите на вкладку свойств мувика. Для этого выделяете мувик НА СЦЕНЕ. Смотрите на вкладку свойств (Properties) и впишите туда downplanescript.
И уберите все кадры с главного таймлайна, кроме одного, я вам тоже об этом писал. Иначе будет каша.

nicon 06.04.2011 22:02

Вложений: 2
Цитата:

Сообщение от mooncar (Сообщение 987203)
Судя по вашему примеру, вы ничего не сделали из того, что я вам говорил.
CS3 сейчас нет под рукой. Дайте уже инстанс-имя мувику НА СЦЕНЕ, которое AS использует.
Зайдите на вкладку свойств мувика. Для этого выделяете мувик НА СЦЕНЕ. Смотрите на вкладку свойств (Properties) и впишите туда downplanescript.
И уберите все кадры с главного таймлайна, кроме одного, я вам тоже об этом писал. Иначе будет каша.

Да ввел я посмотри внимательней, вот скрин собственно, чтов cs3 что в cs5. Я подумал я дурак )) вот и поставил флэш третий, я вводил это после вашего первого ответа.

etc 06.04.2011 22:12

nicon, у вас вписано «back».


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

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