Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Немного вопросов по Sound классу. (Channel, Transform) (http://www.flasher.ru/forum/showthread.php?t=145608)

in4core 14.10.2010 02:19

Немного вопросов по Sound классу. (Channel, Transform)
 
Вот начал разбираться со звуком теперь.

Неужели это правда?

Код AS3:

private function getTrack() {
 
                        ch=tr.play(); // ch  - soundChannel,  tr - Sound
 
                        ch.addEventListener(Event.SOUND_COMPLETE,onScomp);
                }
                private function onScomp(e:Event) {
                        getTrack();
                }

После каждого комплита приходится снова слушателя вешать? Фу какая гадость. Или есть варианты лучше?

Код AS3:

ch.soundTransform = trans;  // trans - soundTransform

Неужели надо каждый раз вызывать онное для изменения громкости звука? Нельзя чтоли один раз приписать?!!!

Ну и наконец, вопросик такой :
при изменении громкости звука через трансформера вывожу в текстовое поле. Изменяю либо по .1 либо по .01
Если первый случай то после 50% в текстовое поле получаю 50.000000001 потом еще страшнее в итоге уходит в минуса -9.999999999
При втором случае на 91% выходит 90.000000001 и снова по тексту. Это что такое вообще?!

Flasher_Lexxx 14.10.2010 09:34

насколько я понял нужно несколько раз проиграть звук?
тогда можно указать второй параметр у метода play()
http://help.adobe.com/ru_RU/AS3LCR/F...und.html#play()

in4core 14.10.2010 11:43

0,999 так моя бабушка еще писала )) я про нормальный код говорю

cleptoman 14.10.2010 12:01

да, это все страшная правда.

но минуса в громкости ищите у себя в коде

in4core 14.10.2010 12:29

Код AS3:

switch (e.currentTarget.ID) {
                                case 'left' :
                                        if (trans.volume > 0) {
                                                trans.volume = trans.volume - .01;
                                        }
                                        trace(trans.volume)
                                        break;
                                case 'right' :
 
                                        if (trans.volume>=0&&trans.volume<1) {
                                                trans.volume = trans.volume + .01;
                                        }
                                        trace(trans.volume)
                                        break;
                        }

в output

Код AS1/AS2:

0.99
0.98
0.97
0.96
0.95
0.94
0.9299999999999999
0.9199999999999999
0.9099999999999999
0.8999999999999999
0.8899999999999999
0.8799999999999999
0.8699999999999999
0.8599999999999999
0.8499999999999999
0.8399999999999999
0.8299999999999998
0.8199999999999998
0.8099999999999998
0.7999999999999998
0.7899999999999998
0.7799999999999998
0.7699999999999998
0.7599999999999998
0.7499999999999998
0.7399999999999998
0.7299999999999998

Чтоже интересно в моем коже не так то?

cleptoman 14.10.2010 13:01

я про минуса говоил, а не про результат после точки..а про это..есть такое

если такой вид вам глаз режет, то можно поюзать toFixed

in4core 14.10.2010 14:06

ну и минуса точно так же. Если брать по .1 то

Код AS3:

0.9
0.8
0.7000000000000001
0.6000000000000001
0.5000000000000001
0.40000000000000013
0.30000000000000016
0.20000000000000015
0.10000000000000014
1.3877787807814457e-16
-0.09999999999999987

Вот такая тема. а что за toFixed ? Где о нем начитать

Добавлено через 7 минут
Разобрался с фиксед спасибо


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

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