![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Может ошибка в написании, без abbleToPlay работает, а с ним нет((( , а мне надо , чтобы на нажатие приближалось, а когда ещё раз по нему нажали удалилось.
import mx.transitions.Tween;
import mx.transitions.easing.*;
sofiaXnach = sofia._x;
sofiaYnach = sofia._y;
sofiaXSN = sofia._xscale;
sofiaYSN = sofia._yscale;
var abbleToPlay:Boolean = true;
sofia.onRelease = function (){
(!abbleToPlay)? this.blizko() : this.daleko();
abbleToPlay = !abbleToPlay
}
function blizko() {
new Tween(sofia, "_xscale", mx.transitions.easing.Regular.easeOut , sofiaXSN, 100, 3, true);
new Tween(sofia, "_yscale", mx.transitions.easing.Regular.easeOut, sofiaYSN, 100, 3, true);
new Tween(sofia, "_x", mx.transitions.easing.Regular.easeOut, sofiaXnach, -315, 3, true);
new Tween(sofia, "_y", mx.transitions.easing.Regular.easeOut, sofiaYnach, -222, 3, true);
};
function daleko() {
new Tween(sofia, "_xscale", mx.transitions.easing.Regular.easeOut , 100, sofiaXSN, 3, true);
new Tween(sofia, "_yscale", mx.transitions.easing.Regular.easeOut, 100, sofiaYSN, 3, true);
new Tween(sofia, "_x", mx.transitions.easing.Regular.easeOut, -315, sofiaXnach, 3, true);
new Tween(sofia, "_y", mx.transitions.easing.Regular.easeOut, -222, sofiaYnach, 3, true);
};
Последний раз редактировалось iNils; 10.03.2008 в 22:41. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
import mx.utils.Delegate;
import mx.transitions.Tween;
import mx.transitions.easing.*;
sofiaInitX = sofia._x;
sofiaInitY = sofia._y;
sofiaInitXScale = sofia._xscale;
sofiaInitYScale = sofia._yscale;
var tween:Tween = null;
var kf:Number = 0;
var flag:Boolean = false;
//
sofia.onRelease = Delegate.create (this, onRelease);
function onRelease () {
var kf2:Number = null;
if (flag) {
kf2 = 0;
} else {
kf2 = 1;
}
tween.stop ();
tween = new Tween (this, "kf", mx.transitions.easing.Regular.easeOut, kf, kf2, 3, true);
tween.onMotionChanged = Delegate.create (this, onMotionChanged);
flag = !flag;
}
function onMotionChanged () {
sofia._xscale = sofiaInitXScale + (100 - sofiaInitXScale) * kf;
sofia._yscale = sofiaInitYScale + (100 - sofiaInitYScale) * kf;
sofia._x = sofiaInitX + (-315 - sofiaInitX) * kf;
sofia._y = sofiaInitY + (-222 - sofiaInitY) * kf;
}
|
|
|||||
|
спасибо, только получается , что он както заторможено прилетает и улетает, вся красота tween пропала, и не настроить теперь за сколько кадров делать твин(((
можно просто включать и выключать то что было? |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
У вас в корне не правильно было сделано.
1. Не надо запускать 4 твина одновременно 2. Вы не убиваете твины запуская новые, в результате они работают параллельно мешая друг другу. Что значит заторможенно? И почему не настроить время анимации? |
|
|||||
|
Заторможено в смысле нет гашения скорости при подходе к конечной точке, скорость линейна , хотя там написано easeOut, видимо вы убиваете твин периодически и он мелкими шажочками дотягивает до конечной точки.
|
|
|||||
|
Спасибо, большое за помощь, я уже поняла, что там намудрила) фиговый из меня флешер, я просто не могу даже разобраться в вашем коде)
|
|
|||||
|
помогите мне пожалуйста вот с этим http://www.flasher.ru/forum/showthread.php?t=109220
может у вас есть готовый скрипт xml -меню с таким раскрытием и разъезжанием ? или намётки , где посмотреть? |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
да все просто
импортируем классы базовые значения свойст, я их переназвал, чтобы были более понятны всем sofiaInitX = sofia._x; sofiaInitY = sofia._y; sofiaInitXScale = sofia._xscale; sofiaInitYScale = sofia._yscale; это общий коэффициент, по которому будем вычислять измения (это удобно, и возможно благодаря тому, что общее время всех ваших твинов было одно) флаг направлений вперед/назад делегат позволяет изменить область видимости внутри функции, раньше this ссылался на sofia, а теперь на его(ее) предка function onRelease () {
//// определяем направление
var kf2:Number = null;
if (flag) {
kf2 = 0;
} else {
kf2 = 1;
}
//// тормозим старый твин, иначе старЫЕ и новый будут работать одновременно
tween.stop ();
//// запускаем новый твин
tween = new Tween (this, "kf", mx.transitions.easing.Regular.easeOut, kf, kf2, 3, true);
//// назначаем функцию обработчик твина, который при каждом измении kf будет вызвать onMotionChanged и там узменять параметры мувика
tween.onMotionChanged = Delegate.create (this, onMotionChanged);
//// меняем флаг направлений
flag = !flag;
}
|
![]() |
![]() |
Часовой пояс GMT +4, время: 21:28. |
|
|
« Предыдущая тема | Следующая тема » |
|
|