Форум 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)
-   -   Tween с каждым разом выполняется быстрее (http://www.flasher.ru/forum/showthread.php?t=114183)

Nott 21.07.2008 15:27

Привет флешерам! Заметила тут одну тонкость. Ума не приложу, с чем она связана.
У меня есть менюшка. При нажатии на любой из пунктов меню соответствующий разделу контент (MovieClip) загружается и проявляется на странице с помощью метода, например, такого:
Код:

public static function showSiteContent() {
var myTween:Tween = new Tween(_curSiteContent, "_alpha", mx.transitions.easing.None.easeNone, _curSiteContent._alpha, 100, 10, false);
}

поначалу все работает отлично. В течение 10 секунд альфится MovieClip.
но если продолжать тыкать в пункты меню, то со временем с каждым новым разом анимация начинает выполняться всё быстрее. Вплоть до резкого появления. :o
"Уважаемые знатоки", подскажите, в чем загвоздка? :umnik2:
Может, я класс Tween как-то неправильно использую?

Волгоградец 21.07.2008 15:38

Не знаю, вроде все верно. Единственное, что в голову приходит - после того, как первый раз нажали на пункт, его _alpha становится равной 100. При последующем нажатии на этот же пункт не обнуляется прозрачность, в следствие чего происходит моментальное появление.

Nott 21.07.2008 15:49

Вот я бы тоже так подумала. Но там переход к резкому появлению происходит медленно. Т.е. сперва альфится за 10 секунд, потом, например, за 8 и т.д. и в итоге начинает довольно резко появляться (где-то на 15ом нажатии на любой из пунктов). :)

iNils 21.07.2008 15:53

http://www.flasher.ru/forum/showthre...ighlight=tween

Волгоградец 21.07.2008 16:01

Вообще говорят, что этот класс криво написан (точно не знаю - сам не использую). Попробуйте в секундах продолжительность твина задать.

Nott 21.07.2008 16:15

Спасибо большое за ссылку. Стыдно признаваться, но не получилось все равно.
Для начала изменила функцию.
Код:

public static function showSiteContent() {
if (myTween) {
                myTween.stop();
                }
var myTween:Tween = new Tween(_curSiteContent, "_alpha", mx.transitions.easing.None.easeNone, _curSiteContent._alpha, 100, 10, false);
}

Не помогло. На случай, чтобы можно было судить о том, как альфится, я протрейсила анимацию в onEnterFrame().
После 1го нажатия:
Код:

0
1.5625
3.515625
5.078125
6.640625
8.59375
10.15625
11.71875
13.28125
15.234375
16.796875
18.359375
19.921875
21.484375
23.046875
24.609375
26.171875
27.734375
28.90625
30.46875
32.03125
33.203125
34.765625
35.9375
37.5
39.0625
40.234375
41.796875
42.96875
44.140625
45.703125
46.875
48.046875
49.21875
50.78125
51.953125
53.125
54.296875
55.46875
56.640625
57.8125
58.984375
60.15625
60.9375
62.109375
63.28125
64.453125
65.234375
66.40625
67.578125
68.359375
69.53125
70.3125
71.484375
72.265625
73.046875
74.21875
75
75.78125
76.5625
77.734375
78.515625
79.296875
80.078125
80.859375
81.640625
82.421875
82.8125
83.59375
84.375
85.15625
85.9375
86.328125
87.109375
87.5
88.28125
88.671875
89.453125
89.84375
90.625
91.015625
91.40625
92.1875
92.578125
92.96875
93.359375
93.75
94.140625
94.921875
94.921875
95.3125
95.703125
96.09375
96.484375
96.875
97.265625
97.265625
97.65625
98.046875
98.046875
98.4375
98.4375
98.828125
98.828125
99.21875
99.21875
99.21875
99.609375
99.609375
99.609375
99.609375
99.609375
99.609375
99.609375
100

После примерно 30го:
Код:

0
1.171875
1.171875
1.171875
2.734375
2.734375
2.734375
4.296875
4.296875
4.296875
6.25
6.25
6.25
7.8125
7.8125
7.8125
9.375
9.375
9.375
11.328125
11.328125
11.328125
12.890625
12.890625
12.890625
14.453125
14.453125
14.453125
16.015625
16.015625
16.015625
17.578125
17.578125
17.578125
19.140625
19.140625
19.140625
20.703125
20.703125
20.703125
22.265625
22.265625
22.265625
23.828125
23.828125
23.828125
25.390625
25.390625
25.390625
26.953125
26.953125
26.953125
28.515625
28.515625
28.515625
30.078125
30.078125
30.078125
31.640625
31.640625
31.640625
32.8125
32.8125
32.8125
34.375
34.375
34.375
35.546875
35.546875
35.546875
37.109375
37.109375
37.109375
38.671875
38.671875
38.671875
39.84375
39.84375
39.84375
41.40625
41.40625
41.40625
42.578125
42.578125
42.578125
43.75
43.75
43.75
45.3125
45.3125
45.3125
46.484375
46.484375
46.484375
47.65625
47.65625
47.65625
49.21875
49.21875
49.21875
50.390625
50.390625
50.390625
51.5625
51.5625
51.5625
52.734375
52.734375
52.734375
53.90625
53.90625
53.90625
55.078125
55.078125
55.078125
56.25
56.25
56.25
57.421875
57.421875
57.421875
58.59375
58.59375
58.59375
59.765625
59.765625
59.765625
60.9375
60.9375
60.9375
61.71875
61.71875
61.71875
62.890625
62.890625
62.890625
64.0625
64.0625
64.0625
64.84375
64.84375
64.84375
66.015625
66.015625
66.015625
67.1875
67.1875
67.1875
67.96875
67.96875
67.96875
69.140625
69.140625
69.140625
69.921875
69.921875
69.921875
71.09375
71.09375
71.09375
71.875
71.875
71.875
72.65625
72.65625
72.65625
73.828125
73.828125
73.828125
74.609375
74.609375
74.609375
75.390625
75.390625
75.390625
76.5625
76.5625
76.5625
77.34375
77.34375
77.34375
78.125
78.125
78.125
78.90625
78.90625
78.90625
79.6875
79.6875
79.6875
80.46875
80.46875
80.46875
81.25
81.25
81.25
82.03125
82.03125
82.03125
82.8125
82.8125
82.8125
83.203125
83.203125
83.203125
83.984375
83.984375
83.984375
84.765625
84.765625
84.765625
85.546875
85.546875
85.546875
85.9375
85.9375
85.9375
86.71875
86.71875
86.71875
87.5
87.5
87.5
87.890625
87.890625
87.890625
88.671875
88.671875
88.671875
89.0625
89.0625
89.0625
89.84375
89.84375
89.84375
90.234375
90.234375
90.234375
90.625
90.625
90.625
91.40625
91.40625
91.40625
91.796875
91.796875
91.796875
92.1875
92.1875
92.1875
92.96875
92.96875
92.96875
93.359375
93.359375
93.359375
93.75
93.75
93.75
94.140625
94.140625
94.140625
94.53125
94.53125
94.53125
94.921875
94.921875
94.921875
95.3125
95.3125
95.3125
95.703125
95.703125
95.703125
96.09375
96.09375
96.09375
96.484375
96.484375
96.484375
96.875
96.875
96.875
96.875
96.875
96.875
97.265625
97.265625
97.265625
97.65625
97.65625
97.65625
97.65625
97.65625
97.65625
98.046875
98.046875
98.046875
98.4375
98.4375
98.4375
98.4375
98.4375
98.4375
98.828125
98.828125
98.828125
98.828125
98.828125
98.828125
98.828125
98.828125
98.828125
99.21875
99.21875
99.21875
99.21875
99.21875
99.21875
99.21875
99.21875
99.21875
99.609375
99.609375
99.609375
99.609375
99.609375
99.609375
99.609375
99.609375
99.609375
99.609375
99.609375
99.609375
99.609375
99.609375
99.609375
99.609375
99.609375
99.609375
99.609375
99.609375
99.609375
100

Не сочтите, пожалуйста, объемный код за флуд. Я лично просматриваю следующую закономерность: сперва альфится с резкими скачками на протяжении всех 10ти секунд. А потом - сперва резко (с 0 до 23 процентов), а затем увеличивается альфа очень плавно (на протяжении оставшегося от 10ти секунд времени), видимо, не очень заметно для глаза, поэтому и кажется, что произошел скачок.
Может, я торможу, раз не понимаю, почему так происходит?

Nott 21.07.2008 16:21

Цитата:

Вообще говорят, что этот класс криво написан (точно не знаю - сам не использую). Попробуйте в секундах продолжительность твина задать.
Вы меня обнадежили (может, я не такой уж тормоз) :) А время анимации задано непосредственно в секундах (10).

2morrowMan 21.07.2008 16:22

Тот твин, что прячет контент тоже надо останавливать(если они разные).

А вообще: http://code.google.com/p/tweener/

Nott 21.07.2008 16:24

Мерси, сейчас поизучаю ;) Там один метод - показывает, другой сдвигает вниз. Оба останавливаются. Работают со статическими свойствами (текущий контент и предыдущий). Вот тот, который сдвигает:
Код:

        public static function hideSiteContent() {
                if (myTween2) {
                myTween2.stop();
                }
                var myTween2:Tween = new Tween(_prevSiteContent, "_y", mx.transitions.easing.None.easeNone, _prevSiteContent._y, 700, 10, false);
        }

Перед тем, как проявлять контент, он другим методом ставится в нужную координату и альфа обнуляется.

iNils 21.07.2008 16:28

У вас написано "var myTween:Tween" то есть myTween локальная ссылка и при повторном вызове метода они никуда не ведет. Вынесите определение myTween в тело класса, а не метода.


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

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