Вход

Просмотр полной версии : не играет звук в плеере, а во FLASH IDE играет


Скрипун
29.11.2007, 19:26
Добрый день. загружаю звук, после загрузки проигрываю. во Flash все работает, а когда открываю плеером локальным, то ниче не играет. что б могло быть? и как поправить?


import mx.transitions.Tween;
import mx.transitions.easing.*;

//btn
sound_on_off_btn.onPress = function() {
this.play();
if(this._currentframe == 1) {
stopSound();
}
else {
playSound();
}
};

var sound:Sound = new Sound();

//load xml and play sound
var xml:XML = new XML();
xml.load("music.xml");
xml.ignoreWhite = true;
//var owner:MovieClip = this;
xml.onLoad = function() {
var sound_url:String = xml.firstChild.childNodes[0].attributes.url;
url_mp3.text = sound_url;
sound.loadSound(sound_url, false);

sound.onLoad = function () {
sound.start(0,999);
}
};



function playSound() {
var obj:Object = {num:0};

var t:Tween = new Tween (obj, "num", Strong.easeOut, sound.getVolume(), 100, 2, true);

t.onMotionChanged = function () {
sound.setVolume(obj.num);
}

}

function stopSound() {
var obj:Object = {num:0};

var t:Tween = new Tween (obj, "num", Strong.easeOut, sound.getVolume(), 0, 2, true);

t.onMotionChanged = function () {
sound.setVolume(obj.num);
}
}

iNils
29.11.2007, 19:31
Значит пошли легким путем, поиском лень пользоваться.

Ваша проблема в том, что для звука (вообще заведите это правило и для XML и для LoadVars) сначала надо объявлять метод для обработки события onLoad, а уже потом грузить. А не наоборот.

Скрипун
29.11.2007, 19:48
Если я правильно Вас понял.... то у меня вот такой код:


import mx.transitions.Tween;
import mx.transitions.easing.*;

var sound:Sound = new Sound();



function loadSound() {
var sound_url:String = xml.firstChild.childNodes[0].attributes.url;
sound.loadSound(sound_url, false);
sound.onLoad = function () {
sound.start(0,999);
}
}

///////////////////////////
function playSound() {
var obj:Object = {num:0};

var t:Tween = new Tween (obj, "num", Strong.easeOut, sound.getVolume(), 100, 2, true);

t.onMotionChanged = function () {
sound.setVolume(obj.num);
}

}

function stopSound() {
var obj:Object = {num:0};
var t:Tween = new Tween (obj, "num", Strong.easeOut, sound.getVolume(), 0, 2, true);
t.onMotionChanged = function () {
sound.setVolume(obj.num);
}
}
//btn
sound_on_off_btn.onPress = function() {
this.play();
if(this._currentframe == 1) {
stopSound();
}
else {
playSound();
}
};



//load xml and play sound
var xml:XML = new XML();
xml.load("music.xml");
xml.ignoreWhite = true;
xml.onLoad = loadSound;


но у меня не работает...

как должно быть?

iNils
29.11.2007, 19:56
Сначала onLoad, потом load:
sound.onLoad = function () {
sound.start(0,999);
}
sound.loadSound(sound_url, false);

xml.ignoreWhite = true;
xml.onLoad = loadSound;
xml.load("music.xml");

Скрипун
29.11.2007, 20:02
Большая благодарность... в дальнейшем так и буду писать.... :victory: