![]() |
загадочный флеш, или что такое с _alpha?
Здравствуйте! Может, просто я глупая и не понимаю элементарных вещей.
Интересная проблема для меня: вот, пишу в руте для мувиклипов TOR: Код:
TOR.onPress = function() {Цитата:
Итак, вот вопросы: почему величина прироста cont._alpha += 4; не целое число, как я прошу, а какая-то близкая 3.90625? Почему, если даже проигрался мувиклип с подложкой (там это видно), иногда не передается в рут значение ja = true? Почему cont._alpha иногда не доходит до 100, и застревает где-то на полпути? Флеш — ужасно загадочная и странная штука 8). |
да, глюки бывают, но всеже ничего загадочного, как много раз тут меня убеждали это не во флэше дело а в ручках ))) с альфа сто раз обсуждалось это так надо не пугайтесь ))) во вторых нужно убивать onEnterFrame, из за этого могут быть глюки полюбе))) а в остальном , это ваша программа, и трудно сказать что она там должна делать а что не должна )))
|
Может я что не догоняю, но вам не кажеться странным, в теле функции onPress на if объявлять еще одну функцию onEnterFrame, по моему ее там можно на худой конец вызвать, а объявлять то каждый раз при выполнении if зачем?
|
Вот вот! Я понимаю все коварство onEnterFrame, и просила подсказать альтернативу, так как знаний явно недостаточно. Вот и пост. Но пока пытаюсь вообще избавиться от onEnterFrame. И может ли он влиять на то, что значение ja не передается в рут?
|
Я бы предложил примерно такой сценарий:
На onEnterFrame служебная переменная принимает значение true. Далее, в анимации в удобоваримом месте - когда анимация подложки завершена, идет проверка этого факта, контейнер приобретает _alpha=0 и начинается загрузка контекста. При выполнении условия загрузка завершена, через setInterval меняется альфа контейнера. |
Всё верно, альфа канал имеет 256 уровней ( как и любой другой канал RGB записываемый одним битом). Но для удобства альфа канал был выведен в отделное свойство, которое позволяет нам работать с процентами. На самом деле ставя значение _alpha = 50% мы имеем дело с альфа каналом равным (100-50)/100*256 = 128.
Так же переводится любое число , которое мы присваеваем альфа каналу. Реальный "шаг" альфы есть 100/256 = 0,390625. И если мы присваеваем альфе число не кратное 0,390625, то альфа принимает значение наиболее близкого кратного числа. К примеру 40 не кратно 0,390625. Но наиболее близкое число 39,84375. Поэтому код Код:
_alpha = 40;39.84375. К тому же проценты нужны для нахождения значения альфа канала во вложенных мувиках. Ну когда сам клип имеет альфу 50%, и ещё его дочерний клип имеет 50%, тогда суммарная альфа дочернего клипа будет 25% |
Поэтому лучше делать:
mc.my_alpha += 4; mc._alpha = mc.my_alpha; Про "коварство onEnterFrame" - позабавило :) Ну, можно делать по окончании this.onEnterFrame = null; |
| Часовой пояс GMT +4, время: 14:35. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.