PDA

Просмотр полной версии : вопрос по "new Tween"


Molecula
04.07.2007, 21:57
Есть функция, мувики скрывает и показывает - слайд шоу.

function Show_Slide(target:MovieClip) {
var _obj = target;

//-------------------------Появляется мувик----------------------

var sl:Tween = new Tween(_obj, "_alpha", Regular.easeOut, _obj._alpha, 100, 2, true);


//-------------------------Исчезает мувик----------------------

sl.onMotionFinished = function() {
var sl_m:Tween = new Tween(_obj, "_alpha", Regular.easeOut, _obj._alpha, 0, 2, true);
sl_m.onMotionFinished = function() {

//-------------------------Переход к следущим картинкам----------------------

i++;
if (i<=4) {
_obj.nextFrame();
} else if (i>4) {
_obj.gotoAndStop('start');
i = 1;
}
Show_Slide(_obj);
};
};
}
Как мне остановить анимацию, обратившись к этой функции?

etc
04.07.2007, 22:32
К какой функции?

Molecula
04.07.2007, 22:46
Пример громоздкий, возьму такой:

st.onPress=function(){
Show_Slide(null, bv.stop)
}

function Show_Slide(target:MovieClip, bv:Tween) {
var _obj = target;
var bv:Tween = new Tween(_obj, "_x", Strong.easeOut, _obj._x, 300, 5, true);
}
Show_Slide(mc,act);

Я пытаюсь через параметр функции Show_Slide(), остановить Tween.
Понимаю, что:
Show_Slide(null, bv.stop)- не правильно.
А как правильно сделать?
Суть в том, что бы одно слайд-шоу по клику исчезало, и появлялось другое.

Так пытался, тоже не работает:

st.onPress=function(){
Show_Slide(null,null,false);
}

function Show_Slide(target:MovieClip, bv:Tween, mov:Boolean) {
var _obj = target;
var bv:Tween = new Tween(_obj, "_x", Strong.easeOut, _obj._x, 300, 5, true);
if(!mov){
bv.stop();
}}
Show_Slide(mc,act);

BigDan
04.07.2007, 22:54
bv в Show_Slide типа Tween, а вы передаёте в функцию объект типа Function(bv.stop). В этом проблема

Molecula
04.07.2007, 22:59
Перед Вашим ответом, я отредактировал свой предыдущий пост.
bv в Show_Slide типа Tween, а вы передаёте в функцию объект типа Function(bv.stop). В этом проблема
Вы правы, не правильно, я так хотел показать что хочу сделать:
Обратиться через параметр функции, к свойству/методу объекта.

Может, я не вижу простого пути, подкажите плиз.

BigDan
04.07.2007, 23:05
в данном случае вы передаёте null и пытаетесь его остановить. Надо поменять область видимости переменной bv, объявить ее вне функции Show_Slide()

lowka
04.07.2007, 23:10
Нужно что-то вроде этого?

import mx.transitions.*;

//ссылка на текущий объект.
var _current;

function showSlide(target)
{
target.tween = new Tween(target, "_alpha", Strong.easeOut, 10, 100, 2, true);
target.tween.start();

return target;
}
//обработчик нажатия
function pressHandler()
{
if(_current)
{
_current.tween.yoyo();
}
_current = showSlide(this);
}
//два мувика с альфой меньшей 100.
mc1.onPress = pressHandler;
mc2.onPress = pressHandler;

Molecula
04.07.2007, 23:11
Мда...похоже у меня сегодня день "Тормоза".
2 BigDan
Точно :yahoo:, заработало.