Показать сообщение отдельно
Старый 19.04.2009, 17:07
mastadont вне форума Посмотреть профиль Отправить личное сообщение для mastadont Найти все сообщения от mastadont
  № 16  
Ответить с цитированием
mastadont

Регистрация: Apr 2009
Адрес: Ростов-на-Дону
Сообщений: 8
Сваял, благодаря "Сборнику рецептов", но обнаружил 2 проблеммы:
1. кнопка плей\пауза работает только 1 раз
2. после снятия с паузы останавливается полоса проигрывания
Код AS3:
var _sound:Sound;
var _request:URLRequest=new URLRequest("song.mp3");
var buffer:SoundLoaderContext=new SoundLoaderContext(10000);
var _channel:SoundChannel;
var _playing:Boolean=false;
var position:int;
 
_sound=new Sound(_request,buffer);
_channel=_sound.play();
_playing=true;
 
addEventListener(Event.ENTER_FRAME, onEnterFrame);
function onEnterFrame(event:Event):void {
	var barHeight:int=5;
	var barWidth:int=200;
	var total:int=_sound.bytesTotal;
	var loaded:int=_sound.bytesLoaded;
	var _length:int=_sound.length;
	graphics.clear();
	graphics.beginFill(0xFF9900);
	graphics.drawRect(80,30,barWidth,barHeight);
	graphics.endFill();
	if (total>0) {
		var percent:Number=loaded/total;
		var position:int=_channel.position;
		_length/=percent;
		var played:Number=position/_length;
		graphics.beginFill(0xFFFF99);
		graphics.drawRect(80,30,barWidth*percent,barHeight);
		graphics.endFill();
		graphics.beginFill(0xFF3300);
		graphics.drawRect(80,30,barWidth*played,barHeight);
		graphics.endFill();
	}
}
_sound.addEventListener(Event.ID3, onID3);
function onID3(event:Event) {
	_title.text=_sound.id3.artist+"-"+_sound.id3.songName;
}
 
btn_pl.addEventListener(MouseEvent.CLICK, onClick);
function onClick(event:MouseEvent):void {
		if (_playing) {
		position=_channel.position;
		_channel.stop();
 
	}
	else {
		_sound.play(position);
 
	}_playing= !_playing;
}