Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как можно задержать воспроизведение звука? (http://www.flasher.ru/forum/showthread.php?t=134274)

sergeylandar 25.12.2009 13:30

как можно задержать воспроизведение звука?
 
Загружаю .mp3 вот таким образом:
Код AS3:

var req:URLRequest = new URLRequest("myName.mp3"); 
var s:Sound = new Sound(req);
s.play();

Продолжительность звучания myName.mp3 например 30сек
Как можно сделать так чтобы после компиляции 5сек музыка не играла, потом проиграла 10 сек, и потом не играла?

Спасибо

leofit 25.12.2009 15:00

В данном случае звук начинает играть еще до полной загрузки файла по мере подгружения?
Код AS3:

var req:URLRequest = new URLRequest("myName.mp3"); 
var s:Sound = new Sound(req);
s.load(req);
s.addEventListener(Event.COMPLETE, loaded);
function loaded(event:Event):void
{
//Вешаем таймер, ждем пять секунд, s.play(), ждем еще 10, s.close()
}

если надо играть еще в процессе загрузки, то читайте про SoundChannel

sergeylandar 25.12.2009 15:11

Код AS3:

var snd:Sound = new Sound(new URLRequest("myName.mp3"));
snd.play(5000, 1);

Ну вот так получается что ждем 5сек и воспроизводим музыку 1 раз доконца.
А как теперь сделать так чтобы она не доконца доиграла а только 10сек проиграла и остановилась ?

Zik. 25.12.2009 15:14

осчитываешь таймер на 10 сек и останавливаешь

sergeylandar 25.12.2009 15:33

что такое таймер и как его повесить?

Zik. 25.12.2009 15:56

Читаем

sergeylandar 25.12.2009 16:50

почитал:)
а почему на этот код
Код AS3:

var req:URLRequest = new URLRequest("myName.mp3"); 
var s:Sound = new Sound(req);
s.load(req);
s.addEventListener(Event.COMPLETE, loaded);
function loaded(event:Event):void
{
//Вешаем таймер, ждем пять секунд, s.play(), ждем еще 10, s.close()
}

флеш ругается?

leofit 25.12.2009 16:56

Извиняюсь, писал в запаре )

Код AS3:

var s:Sound = new Sound();
s.addEventListener(Event.COMPLETE, loaded);
 
var req:URLRequest = new URLRequest("D:\1.mp3");
 
s.load(req);
s.addEventListener(Event.COMPLETE, loaded);
function loaded(event:Event):void
{
//Вешаем таймер, ждем пять секунд, s.play(), ждем еще 10, s.close()
}

Добавлено через 9 минут
в бонус

Код AS3:

var timer:Timer = new Timer(1000);
timer.addEventListener(TimerEvent.TIMER, timerListener);
 
var counter:int = 0;
var s:Sound = new Sound();
s.addEventListener(Event.COMPLETE, loaded);
 
var req:URLRequest = new URLRequest("D:\1.mp3");
s.load(req);
 
var channel:SoundChannel;
 
function loaded(event:Event):void
{
        timer.start();
}
 
function timerListener(e:TimerEvent) {
        counter++;
        trace(counter);
        if(counter == 5) {
                channel = s.play();
        }
        if(counter == 15) {
                channel.stop();
                timer.stop();
        }
}


sergeylandar 25.12.2009 17:31

ага, спасибо
так в таком случае получается мы ждем 5 сек и начинаем играть музыку. и в 15 останавливаем проигрывание.

а я хочу что то типа такого:
музыка начинает играть например через 2 секунды, но не с начала а как будто она уже 2секунды играла но мы ее не слышали.
только не получается ее на 3секунде остановить
код:
Код AS3:

var s:Sound = new Sound();
s.addEventListener(Event.COMPLETE, loaded);
var req:URLRequest=new URLRequest("manscreamdistance.mp3");
s.load(req);
var myTimer:Timer = new Timer(1500, 1);
 
function loaded(event:Event):void {
        //Вешаем таймер, ждем пять секунд, s.play(), ждем еще 10, s.close()
 
    myTimer.addEventListener("timer", timerHandler);
    myTimer.start();
        s.play(2000, 1);
        trace("start");
}
 
function timerHandler(event:TimerEvent):void {
    //s.close(3000)
    trace("stop");
}


alatar 25.12.2009 21:19

Метод close() класса Sound не принимает никаких параметров, Если вам надо будет впоследствии проиграть с 3-й секунды просто сделайте play(3000)


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

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