Просмотр полной версии : движение объекта
greenhill
05.11.2009, 13:41
Привет всем!
Подскажите, пожалуйста, как сделать простую вещь:
при клике на кнопку объект плавно с ускорение перемещается скажем на 300пикселей.
Спасибо!
rockerror
05.11.2009, 16:28
Привет, недавно решал эту задачу вот тут: http://www.flasher.ru/forum/showthread.php?t=132002
В конце проверенный, жизнеспособный код
Все проще. 3 типа движения мувика mc, варианты для разных кнопок:
import mx.transitions.Tween;
var timeToMove:Number = 1; //время, отведенное для движения, сейчас - 1 сек.
btn1.onPress = function () { //сначала медленно, потом разгоняется
var myTween:Tween = new Tween(mc, '_x', mx.transitions.easing.Strong.easeIn, mc._x, mc._x + 300, timeToMove, true);
}
btn2.onPress = function () { //сначала быстро, потом замедляется
var myTween:Tween = new Tween(mc, '_x', mx.transitions.easing.Strong.easeOut, mc._x, mc._x + 300, timeToMove, true);
}
btn3.onPress = function () {//равномерное движение
var myTween:Tween = new Tween(mc, '_x', mx.transitions.easing.None.easeNone, mc._x, mc._x + 300, timeToMove, true);
}
fps побольше желательно, чтобы была плавность.
rockerror
05.11.2009, 16:39
Помнится, Уважаемый mooncar уже не раз помогал хорошим советом))) Его слушать - хорошо))) Жаль его не было, когда я решал свой вопрос ;)
Да что там.
Полезно, конечно, организовывать все пошагово, для самобучения, но порою бывает проще использовать класс.
rockerror
05.11.2009, 16:45
Если честно, я искал в словаре as2 класс Tween, но так и не нашел((((
Добавлено через 1 минуту
То ли плохо искал, то ли словарик так себе, то ли голова))) Но...)))
Это раздел «ActionScript 2.0 Components Language Reference »
То есть, если в хелпе искать, нужно выбрать хотя бы режим «All books».
greenhill
05.11.2009, 17:35
спаисибо огромное!
Четко и ясно :)
Для Tween переводил для себя
Regular: воодушевление постепенно возрастет или уменьшится в скорости как определено облегчающим методом.
Bounce: воодушевление подпрыгнет назад несколько шагов, когда оно достигает end позиции перед урегулированием в этом.
Back:воодушевление выйдет за end позицию перед подпрыгиванием обратно в это.
Elastic: смесь "Bounce и Back" комбинируемые эффекты.
Strong: более подчеркиваемый Regular: эффект.
None: нет специальный tweening, объектное движение не будет развивать скорость вдоль пути.
easeIn: - tween эффект применяется к началу воодушевления.
easeOut: - tween эффект применяется до конца воодушевления.
easeInOut: - tween эффект применяется к началу и концу воодушевления.
easeNone: - никакой tweening эффект не применен, чтобы использоваться Ничто tween функция. \\\
Tween.stop() делает, что это говорит, это говорит tween остановить в его текущей координате.
Tween.resume() говорит tween к итоговому воспроизведению от его текущей координаты, этот метод используется после призыва .stop() метод.
Tween.continueTo(окончание, продолжительность) говорит tween продолжать, это - воодушевление к новому пункту, начинающемуся от его текущей координаты.
Tween.start() говорит tween запустить воспроизведение от начального исходного пункта, это не то же как .resume().
Tween.fforward() говорит tween остановить в конечном итоге значение воодушевления.
Tween.nextFrame() говорит tween пойти к следующей рамке.
Tween.preFrame() говорит tween вернуться к предыдущей рамке.
Tween.rewind() говорит tween пойти назад и остановить в его исходном пункте.
Tween.yoyo() говорит воодушевлению играть в перемене.
.onMotionChanged - беспрерывно запустил, когда воодушевление бежит.
.onMotionFinished - запустил, когда воодушевление закончено.
.onMotionResumed - запустил, когда .resume() к методу обращается, чтобы возобновить воодушевление, будучи остановленным.
.onMotionStarted - запустил, когда воодушевление инициировано, используя .start() или .yoyo() метод. Код не будет запущен первый раз воодушевление сыграно, когда tween создан.
.onMotionStopped - запустил, когда .stop() обращается к.
Tween.duration Это свойство возвращает продолжительность, для которой предполагается, что tween воодушевление участвует в гонке.
Tween.finish Это возвращает end значение, которое мы назначили, создавая tween.
Tween.FPS Это возвращает число рамок за секунду, в которой воодушевление бежит.
Tween.position Это возвращает текущее значение property настоящего tweened.
"yoyo() говорит воодушевлению играть в перемене. " - это нечто! :)
greenhill
05.11.2009, 19:31
как лучше реализовать эффект плавного появления элемента? скажем, TextField
Например, так: делаете на сцене TextField внутри мувика mc, руками задаете этому мувику _alpha = 0, а потом по нажатию или другому событию проявляете:
import mx.transitions.Tween;
var timeToMove:Number = 1; //время, отведенное для проявления, сейчас - 1 сек.
btn.onPress = function () {
var myTween:Tween = new Tween(mc, '_alpha', mx.transitions.easing.Strong.easeIOut, 0, 100, timeToMove, true);
}
greenhill
06.11.2009, 09:14
спасибо!!
а для увеличения\уменьшения, какой параметр в твине используется?
что-то не могу найти нормальной документации по этому вопросу
Размеры - можно _xscale, _yscale, можно _width и _height.
Информацию, например, ищите не в разделе Tween, а в разделе MovieClip, потому что это его свойства меняет Tween.
А вообще
Tween( obj:Object, prop:String, func:Function, begin:Number, finish:Number, duration:Number, useSeconds:Boolean )
К объектам, отличным от MovieClip, применять Tween не пробовал. Посмотрите сами, у какого объекта какое свойство изменять с его помощью.
greenhill
06.11.2009, 15:37
ага, спасибо. Использовала _xscale, _yscale
AzagThoth
06.11.2009, 18:21
Tween () Конструктор
public function Tween(obj:Object, prop:String, func:Function, begin:Number, finish:Number, duration:Number, useSeconds:Boolean = false)
Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9
Создает экземпляр класса Tween. Используйте конструктор функции с оператором new: var myTween:Tween = new Tween().
Параметры obj:Object — Объект, являющийся целями Tween.
prop:String — Имя свойства (значение параметра obj) на которое будет направлено воздействие.
func:Function — Имя используемой функции замедления.
begin:Number — Начальное значение параметра prop.
finish:Number — Число, указывающее конечное значение параметра prop (целевого объекта, подвергаемого анимации движения).
duration:Number — Продолжительность движения. Если значение отрицательное или пропущено, устанавливается значение infinity.
useSeconds:Boolean (default = false) — Флаг, определяющий использование секунд вместо кадров. Функция использует секунды, если значение флага — true, или кадры относительно значения, определенного в параметре duration, если значение флага — false.
Добавлено через 36 минут
Моя раздача с русским справочником на torrents http://torrents.ru/forum/viewtopic.php?t=2358715 Там правда AS3, но в целом многое небходимое в AS2 описано на русском :)
greenhill
09.11.2009, 11:34
спасибо за полезную информацию!!
vladislove
15.12.2009, 23:38
а подскажите плз как остановить Твин находящийся в режиме уоуо в зависимости от какого нибудь условия (например от координаты Х мувика)
myTween.stop() не пробовали?
vladislove
16.12.2009, 03:49
да все перепробовал,
вопрос в том как и где ей условие подсунуть (например что при myclip_mc < 500 Твин
останавливается (напомню он находится в уоуо)
пробовал трэйсить координату Х в цикле с условием,но вываливается только первое значение - такое ощущение что в момент выполнения Твина доступ к координатам Твинируемого обьекта осуществляется как то подругому
Сдается мне, что вам нужно использовать свойство Tween.position.
А проверку выполнять внутри обработчика
tweenInstance.onMotionChanged = function() {
if (tweenInstance.position < a) {
//..действия
}
};
Будет ли происходить событие onMotionChanged, когда работает yoyo, выясните, я не знаю.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.