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

Kikasso 23.10.2007 15:26

Код:

var myTween:Tween = new Tween(my_mc, "_y", mx.transitions.easing.Elastic.easeOut, my_mc._y, my_mc._y, 1, true);
myTween.stop();
menu1.onRollOver = function() {
    myTween.continueTo(50,3);
};
menu1.onRollOut = function() {
    myTween.continueTo(0,5);
};

а так?

То что у вас не работает - понятно, вы же myTween объявили локально внутри функции.

Валиант 23.10.2007 15:48

О, так получилось, хм... но как я понял я задаю переменную myTween, и присваиваю ей значение Твина с проперти _Y, а если мне надо еще и _х мне нужно создать новую переменную? илиже есть какой то другой способ?

Kikasso 23.10.2007 15:55

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

Валиант 23.10.2007 16:04

Цитата:

Сообщение от Kikasso
Второе свойство - второй твин. В этом случае секунды лучше не использовать, чтобы не дергалось.

понятно, сейчас более-менее появляется что-то похожее на выпадающее меню у меня... хоть я конечно и не программер
Код:

import mx.transitions.*;
import mx.transitions.easing.*;

var myTween_y:Tween = new Tween(my_mc, "_y", mx.transitions.easing.Elastic.easeOut, my_mc._y, my_mc._y, 1, true);
var myTween_a:Tween = new Tween(my_mc, "_alpha", None.easeOut, my_mc._y, my_mc._y, 1, true);

my_mc.onRollOver= function() {
myTween_y.stop();
myTween_a.stop();
        }
my_mc.onRollOut        = function() {
    myTween_y.continueTo(0,1);
    myTween_a.continueTo(0,.5);       
       
}
menu1.onRollOver = function() {
        myTween_y.continueTo(22,1);
          myTween_a.continueTo(100,.7);
};
menu1.onRollOut = function() {
    myTween_y.continueTo(0,1);
    myTween_a.continueTo(0,.5);       
};

вот примерно так получается, что появляется подменю, и когда наводишь на это подменю, твин останавливается, а иначе меню просто исчезнет и юзер просто не успеет на него нажать... но он может навести на подменю гораздо раньше и получится что твин застопится на половине пути, наверно есть какое-то решение, что-то типо не останавливать, пока не закончится твин, но даже если так надо же как то обрабатывать событие onRollOver и onRollOut..?:umnik2:

Kikasso 23.10.2007 16:16

У твина есть событие onMotionFinished - по этому событию можно переназначить onRollOver и onRollOut (их же можно удалить в нужный момент)

Валиант 23.10.2007 16:43

как я понял onMotionFinished эта функция актуальна только тогда, когда твин подошёл к концу, не могу понять как это может оборвать полу секундное перемещение с одного объекта на другой, если твин у меня идёт примерно секунды 3%

Fernando Costa 23.10.2007 16:59

событие onMotionFinished вызывается когда твин закончил свое движение(какая разница коакое время это заняло)
событие onMotionStopped вызывается когда твин закончил свое движение или был остановлен

Валиант 23.10.2007 17:12

Цитата:

Сообщение от Fernando Costa
событие onMotionFinished вызывается когда твин закончил свое движение(какая разница коакое время это заняло)
событие onMotionStopped вызывается когда твин закончил свое движение или был остановлен

блин, тогда покажите мне кодом плиз, как можно прервать onRollOut или Over при помощи этой функции

Код:

menu.onRollOut=function(){
trace("2");
}
myTween_y.onMotionFinished  =function(){
                trace("1");
        }

в итоге цифра 2 у меня трэйсница два раза, и только потом трэйсница 1? Или я не понимаю о чем вы говорите, помните, я не программер, вы мне говорите, я пробую, у меня onMotionFinished начинается только тогда, когда например менюшка полностью появилась!

Fernando Costa 23.10.2007 17:15

<< у меня onMotionFinished начинается только тогда, когда например менюшка полностью появилась!

Так и должно быть. есть событие у класса Tween stop(); оно останавливает движение. Смотрите в хелпе

Kikasso 24.10.2007 01:58

Цитата:

Сообщение от Валиант
как я понял onMotionFinished эта функция актуальна только тогда, когда твин подошёл к концу, не могу понять как это может оборвать полу секундное перемещение с одного объекта на другой

Я имел в виду что можно по клику удалять onRelease и что там еще, и кнопки перестанут нажиматься.
А когда анимация доиграет до конца - снова назначить.


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

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