Sound

Technologia Flash, czyli animacja na potrzeby stron WWW to świat daleko odbiegły od zwykłego programowania i kodu. Zapytaj o pomoc i podziel się z nami Twoimi problemami z zakresu Flasha.
simonX
Posty: 18
Rejestracja: sob kwie 05, 2008 9:02 pm

Sound

Post 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();
};




Thorus
Przelotem
Przelotem
Posty: 289
Rejestracja: pt sty 26, 2007 1:46 am

Re: Sound

Post 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? :)
djafterhour
Nowy
Nowy
Posty: 101
Rejestracja: pt lip 13, 2007 5:12 pm

Re: Sound

Post 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

Kod: Zaznacz cały

  mySound.start(); 
w klatce 73

Kod: Zaznacz cały

  mySound.stop(); 
w klatce 92

Kod: Zaznacz cały

  mySound.start(); 
w klatce 100

Kod: Zaznacz cały

  mySound.stop(); 
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

Re: Sound

Post autor: Marek_bf »

onSoundComplete to nie metoda sygnalizująca wczytanie dźwięku tylko jego pełne odegranie. :)
simonX
Posty: 18
Rejestracja: sob kwie 05, 2008 9:02 pm

Re: Sound

Post autor: simonX »

wielkie dzięki działa ;] a jeszcze moglby mi ktos podac polecenie ktore pozwoli zmniejszyc głośność
djafterhour
Nowy
Nowy
Posty: 101
Rejestracja: pt lip 13, 2007 5:12 pm

Re: Sound

Post 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()
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

Re: Sound

Post autor: Marek_bf »

onLoad dla obiektu sound używa się dla metody load nie attach :)
djafterhour
Nowy
Nowy
Posty: 101
Rejestracja: pt lip 13, 2007 5:12 pm

Re: Sound

Post 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
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

Re: Sound

Post 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();
			}
		}
	};
}
ODPOWIEDZ