Форум 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)
-   -   Мигает клип когда проигрывается звук при помощи Класса Sound (http://www.flasher.ru/forum/showthread.php?t=129705)

Art_133 08.09.2009 16:35

Мигает клип когда проигрывается звук при помощи Класса Sound
 
Привет. даже не знаю поможет кто или нет. Попробую описать проблему детальнее.

У меня есть клип с планетой, в этом клипе раскадровка её полного оборота на 360 градусов. При клике на эту планету и верчение мыши в лево в право земля крутиться по средствам простого перехода на кадры. Код не показываю т.к. проблема не в этом.
У меня задача сделать ещё и звук во время того как крутят планету. Я решил сделать так:
1. При клике на планету запускать звук но делать его громкость 0%
2. Когда мыш не стоит на месте, то делать громкость звука 100%
3. Когда отпускаем землю - звук стопорится.
Всё это описано в Классе:
Код AS1/AS2:

class MouseMove {
        static var mouseMoveInterval:Number;
        static var m1:Number;
        static var m2:Number;
        var statusFlag:Boolean = false;
        var rSound:Sound;
        var sVolume:Number = 40;
        var sVolumeMax:Number = 40;
        var sVolumeMin:Number = 0;
 
 
        public function MouseMove () {
 
 
        }
        public function start (trackId:String) {
 
                rSound = new Sound ();
 
                rSound.attachSound (trackId);
                rSound.start (0,99);
                setVolume (sVolume)
                mouseMoveInterval = setInterval (this, 'mouseMoveFunc', 100);
 
        }
        private function mouseMoveFunc () {
                m1 = _xmouse;
                if (m1 == m2) {
                        //trace ('Играет');
                        setVolume (sVolumeMin)
                }
                else {
                        setVolume (sVolumeMax)
                        //trace ('Не играет!');
                }
                m2 = m1;
        }
        public function stop () {
                rSound.stop()
                clearInterval (mouseMoveInterval);
        }
        private function setVolume (vol:Number) {
                rSound.setVolume (vol);
        }
}

Теперь делаю так:
1. Создаю экземпляр моего Класса
Код AS1/AS2:

var mySound:MouseMove = new MouseMove ()

2. Запускаю звук при нажатие на клип
Код AS1/AS2:

mc.onPress = function (){
mySound.start('3d')
}

3. При отпускание останавливаю проигрывание звука
Код AS1/AS2:

mc.onRelease = function (){
mySound.stop()
}

Проблема:
Когда я начинаю "крутить" эту землю - звук играет, всё нормально работает, но сам кип с землёй иногда мелькает, пропадает, на пол секунды, может меньше но это мигание заметно. Я даже ума не приложу что может быть причиной этого.
Буду рад любой помощи, может как-нибудь оптимизировать код и проблема исчезнет... Я даже не знаю в какую сторону смотреть...


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

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