Форум 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)
-   -   9 случайных погружаемых звуков при кликании мышкой на кнопку (http://www.flasher.ru/forum/showthread.php?t=112594)

Bob SurikeN 02.06.2008 22:03

9 случайных погружаемых звуков при кликании мышкой на кнопку
 
Я - полный чайник. Программирую воспроизведение случайных звуковых файлов (или флеш-клипов). Я нашёл похожий код, но в неём есть лишняя функция - автоматическое воспроизведение подгружаемых клипов через случайные промежутки времени. Мне же нужно посто, чтобы нарисованный чёртик при кликании по нему мышкой говорил в хаотичном порядке 9 фраз. Вот тот похожий код (с поправкой на мои звуки):

Код:

_global.randRange = function(min:Number, max:Number):Number {
var randomNum:Number = Math.floor(Math.random()*(max-min+1))+min;
return randomNum;
};


function init ():Void {
setInterval (this, "load", 5000);
}


function load ():Void {
ti = _global.randRange(1, 9);
d = _global.randRange(-1, 1);
if (d>=0) {
di = 1;
} else {
di = -1;
}

this.createEmptyMovieClip("t_mc", 10);
loadMovie("http://anti-radio.ru/swf/d"+ti+".swf", t_mc);
t_mc._x = 360;
t_mc._y = 158.7;
t_mc._xscale = di*100;
};




init();

bt.onRollOver = function() {
t_mc.stop();
};

bt.onRollOut = function() {
t_mc.play();
};

Этот код стоит у меня на кадре, к которому мы подходим и играем основной клип при клике мыши. Что нужно убрать/изменить в коде, чтобы чёртик произносил 9 фраз в хаотичном порядке?

Спасибо.

iNils 02.06.2008 22:22

Для оформления своего кода надо использовать теги [code][/code].

Wolsh 02.06.2008 22:58

Звукам в библиотеке проставьте Linkage в виде цифр 0-8
Чертик - devil_mc
Код:

devil_mc.onPress = function  () {
    s.stop();
    delete s;
    var s:Sound = new Sound();
    s.attachSound(Math.floor(Math.random()*9).toString());
    s.start();
}


Bob SurikeN 02.06.2008 23:28

ок, понял.

спасибочки! пробую...

Я, наверно, не совсем доходчиво спросил.
2 вопроса:
1. куда вставить этот код, если при нажатии на чёрта-кнопку (он же devil_mc) клип должен вставать на определённый кадр (61) и играть с этого места вместе со случайным звуком?
2. звуки в виде файлов d1.swf...d9.swf - подгружаемые, то есть это отдельные файлы вне основного клипа.

Vektor 03.06.2008 01:33

Ответ, на Самый певый вопрос.
Код:

//звуки добавиш сам, не забуть в Properties звука поставить галочку, как для Мувика.
//Названия звука 1-9.
var aSound:Array = ["1", "2", "3", "4", "5", "6", "7", "8,", "9"];
var nS:Number;
this.onMouseDown = function() {
        var mySound:Sound = new Sound();
        nS = Math.floor(Math.random()*aSound.length);
        mySound.attachSound(aSound[nS]);
        mySound.start();
        aSound.splice(nS,1);
        this.onEnterFrame = function() {
                if (mySound.duration == mySound.position) {
                        nS = Math.floor(Math.random()*aSound.length);
                        mySound.attachSound(aSound[nS]);
                        mySound.start();
                        aSound.splice(nS,1);
                        if (aSound.length == 0) {
                                delete onEnterFrame;
                        }
                }
        };
};

В следующий раз, формулируй ? правильно.

Wolsh 03.06.2008 02:01

2. звуки в swf... Флэш давно уже нормально грузит и играет мп3 например. Причем потоковый, т.е. не надо ждать полной загрузки файла. Ну типа так
Код:

devil_mc.onPress = function  () {
    (new Sound).stop();
    var s:Sound = new Sound();
    a = Math.floor(Math.random()*9).toString()
    s.onLoad = function(success:Boolean) {
        if (success) {
            s.start(0,1);
            _root.gotoAndStop(61);
        }
    }
    s.loadSound(a+".mp3", true);
}

Звуки назвать 0.mp3 - 8.mp3 и положить в ту же директорию.
Ну или изменить в коде строчку на реальный URL по типу
Код:

s.loadSound("http://www.mysite.com/welcomedevil_sounds/"+a+".mp3", true);

Bob SurikeN 03.06.2008 02:10

Спасибо, Wolsh! Я сделал пока звуки внутри флешки: АНТИ-радио.
Завтра буду разбираться со вторым вариантом.
Ещё раз спасибо, выручил, дружище! Я вообще-то музыкант, а не флешер )))))

Bob SurikeN 03.06.2008 02:15

Спасибо, Vektor!

Vektor 03.06.2008 08:48

Немного изменил код, так правильней.
Код:

//звуки добавиш сам, не забуть в Properties звука поставить галочку, как для Мувика.
//Названия звука 1-9.
var aSound:Array = ["1", "2", "3", "4", "5", "6", "7", "8", "9"];
var nS:Number;
this.onMouseDown = function() {
        var mySound:Sound = new Sound();
        nS = Math.floor(Math.random()*aSound.length);
        mySound.attachSound(aSound[nS]);
        mySound.start();
        aSound.splice(nS,1);
        var _interval = setInterval(fSound, mySound.duration);
        function fSound() {
                nS = Math.floor(Math.random()*aSound.length);
                mySound.attachSound(aSound[nS]);
                mySound.start();
                aSound.splice(nS,1);
                if (aSound.length == 0) {
                        clearInterval(_interval);
                        _interval = null;
                }     
        }
};


Bob SurikeN 04.06.2008 12:22

Wolsh! Этот код работает почему-то только пока флешка не вставлена в htm. Может быть что-то в свойствах объекта?

Код:

devil_mc.onPress = function  () {
    (new Sound).stop();
    var s:Sound = new Sound();
    a = Math.floor(Math.random()*9).toString()
    s.onLoad = function(success:Boolean) {
        if (success) {
            s.start(0,1);
            _root.gotoAndPlay(61);
        }
    }
    s.loadSound(a+".mp3", true);
}



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

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