Strona 1 z 1
Sound
: sob maja 10, 2008 2:08 pm
autor: simonX
Mam taki problem ponizej przedstawilem niby prosty kod AS do ładowania muzyki wszystko jest cacy tylko czy moglby mi ktos dopisac cos bo chce zeby dzwięk rozpoczynal się w klatce 68 a kończyl w 73 a poźniej zeby znowu się rozpocząl np w 92 a skonczyl w 100.Plz moze mi ktoś pomoc to bardzo ważne.
Kod: Zaznacz cały
var mySound:Sound = new Sound(this);
mySound.attachSound('Song');
mySound.start();
mySound.onSoundComplete = function() {
this.start();
};
Re: Sound
: sob maja 10, 2008 2:17 pm
autor: Thorus
No to daj kod ze startem dzwieku w klatce 68 i go zatrzymaj w 73, potem znow start w 92 i stop w 100. Wczym problem?

Re: Sound
: sob maja 10, 2008 3:31 pm
autor: djafterhour
spróbuj tak:
w pierwszej klatce daj
Kod: Zaznacz cały
var mySound:Sound = new Sound(this);
mySound.attachSound('Song');
mySound.onSoundComplete = function() {
this.stop(); //nie puszczamy jeszcze dźwięku
play(); //rozpoczynamy animację
};
stop();// poczekamy aż dźwięk się załaduje potem rozpoczniemy animację
w klatce 68
w klatce 73
w klatce 92
w klatce 100
Re: Sound
: sob maja 10, 2008 5:34 pm
autor: Marek_bf
onSoundComplete to nie metoda sygnalizująca wczytanie dźwięku tylko jego pełne odegranie.

Re: Sound
: sob maja 10, 2008 8:03 pm
autor: simonX
wielkie dzięki działa ;] a jeszcze moglby mi ktos podac polecenie ktore pozwoli zmniejszyc głośność
Re: Sound
: sob maja 10, 2008 11:24 pm
autor: djafterhour
Marek_bf pisze: onSoundComplete to nie metoda sygnalizująca wczytanie dźwięku tylko jego pełne odegranie.
Masz rację małe niedopatrzenie:) już to poprawiam
Kod pierwszej klatki powinien wyglądać tak
Kod: Zaznacz cały
var mySound:Sound = new Sound(this);
mySound.attachSound('Song');
mySound.onLoad = function(success:Boolean) {
if(success){
this.stop(); //nie puszczamy jeszcze dźwięku
play(); //rozpoczynamy animację
}
};
mySound.onSoundComplete = function() {
this.stop();
};
stop()
Re: Sound
: ndz maja 11, 2008 8:30 am
autor: Marek_bf
onLoad dla obiektu sound używa się dla metody load nie attach

Re: Sound
: ndz maja 11, 2008 8:58 am
autor: djafterhour
Marek_bf pisze:onLoad dla obiektu sound używa się dla metody load nie attach
przepraszam za błąd w poprzednim przypadku metoda onLoad nie jest wywoływana
kod pierwszej klatki:
Kod: Zaznacz cały
var mySound:Sound = new Sound(this);
mySound.attachSound('Song');
mySound.onSoundComplete = function() {
this.start();
};
simonX pisze:a jeszcze moglby mi ktos podac polecenie ktore pozwoli zmniejszyc głośność
Jeżeli chodzi o głośność
Kod: Zaznacz cały
mySound.setVolume(value); // wartości od 1 do 100
Re: Sound
: ndz maja 11, 2008 9:39 am
autor: Marek_bf
Jeszcze raz się wtrącę

Wartość natężenia dźwięku można regulować w większym zakresie niż 1 do 100 może y i 0 do 1000, a może i -700 do 700 itp. Wartości ujemne również zwiększają siłę głosu jednak odwracają fazę dźwięku.
Co do problemu:
Kod: Zaznacz cały
// identifier dźwięku z biblioteki "muzaLinkage"
// dla sceny na której wywołana została funkcja (this)
// klatki startujące i zatrzymujące dźwięk [[68, 73], [92, 100]]
// start 68 stop 73 start 92 stop 100
mySound("muzaLinkage", this, [[68, 73], [92, 100]]);
// inne ustawienie
// mySound("muzaLinkage2", jakisMc, [[10, 20], [45, 60], [90, 95], [115, 30]]);
///
function mySound(soundStr:String, targetMc:MovieClip, klatkiArr:Array) {
var depth:Number = targetMc.getNextHighestDepth();
var soundMc:MovieClip = targetMc.createEmptyMovieClip("soundMc" + String(depth), depth);
var mySound:Sound = new Sound(soundMc);
mySound.attachSound(soundStr);
soundMc.onEnterFrame = function() {
for (var i = 0; i < klatkiArr.length; i++) {
if (targetMc._currentframe == klatkiArr[i][0]) {
mySound.start(0, 0);
} else if (targetMc._currentframe == klatkiArr[i][1]) {
mySound.stop();
}
}
};
}