Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jnejunior

dois botões em um só

Recommended Posts

tenho um player em flash lógico...

 

e queria que este tivesse um botão com duas funções, assim:

 

o botão play e pause fosse um só, enquanto a música tiver tocando ele fica no formato de pausar, e quando estiver pausado fica no formato de play...

acho que deu pra sacar...

tambem precisava incrementar a parte do controle do volume, queria que quando eu clicasse em uma area do volume o mesmo respondesse, tipo do player do windows (WMP)...

 

será que alguem pode me ajudar...

 

import flash.display.Sprite;
import flash.net.URLRequest;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundMixer;

// Adicionando nossas variaveis.

var getMusica:URLRequest;
var music:Sound = new Sound();
var soundChannel:SoundChannel;
var currentSound:Sound = music;
var pos:Number;
var Cindex:Number = 0;
var somPlay:Boolean = false;
var xml:XML;
var somlist:XMLList;
var somVol:SoundTransform = new SoundTransform();
var ratio_volume:Number;
var SlideB:Rectangle = SlideM.getBounds(SlideM);
var xPos:Number = SlideB.x;
var yPos:Number = SlideB.y;
var widthPos:Number = SlideB.width-SlideM.slide_mc.width;
var heightPos:Number = 0;
var bounds:Rectangle = new Rectangle (xPos, yPos, widthPos, heightPos);
var loadIMG:Loader = new Loader();
var loadIMGR:Loader = new Loader();

// Carregando XML.

var loader:URLLoader = new URLLoader();
music.addEventListener(ProgressEvent.PROGRESS,Loadprogress);
loader.addEventListener(Event.COMPLETE, wLoader);
var URLRe:URLRequest = new URLRequest("musicas.xml");
loader.load(URLRe);

function Loadprogress(e:ProgressEvent):void {
	var loadedPct:uint = Math.round(100 * (e.bytesLoaded / e.bytesTotal));
	load_txt.text = loadedPct + "% concluído";
}

function wLoader (e:Event) {
	xml = new XML (e.target.data);
	somlist = xml.som;
	getMusica = new URLRequest (somlist [0].url);
	music.load (getMusica);
	soundChannel = music.play();
	musica_txt.text = somlist [0].musica;
	
}

// Eventos de próximo, anterior, pause, play e puxar os textos do XML.

prox_btn.addEventListener(MouseEvent.CLICK, nextsom);
ant_btn.addEventListener(MouseEvent.CLICK, prevsom);
pause_btn.addEventListener(MouseEvent.CLICK, pausesom);
													   
function nextsom (e:Event) {
	if (Cindex < (somlist.length() - 1)) {
	Cindex++;
	} else {
		Cindex = 0;
	}


var nextReq:URLRequest = new URLRequest (somlist[Cindex].url);
var music:Sound = new Sound(nextReq);
music.addEventListener(ProgressEvent.PROGRESS, Loadprogress);
soundChannel.stop();
musica_txt.text = somlist[Cindex].musica;
soundChannel = music.play();
somPlay = true;
currentSound = music;
soundChannel.addEventListener(Event.SOUND_COMPLETE, nextsom);
}

function prevsom (e:Event){
if (Cindex > 0){
	Cindex--;
} else {
	Cindex = somlist.length() - 1;
}

var prevReq:URLRequest = new URLRequest (somlist[Cindex].url);
var muscic:Sound = new Sound(prevReq);
music.addEventListener(ProgressEvent.PROGRESS,Loadprogress);
soundChannel.stop();
musica_txt.text = somlist [Cindex].musica;
soundChannel = music.play();
somPlay = true;
currentSound = music;
soundChannel.addEventListener(Event.SOUND_COMPLETE, nextsom);
}

function pausesom(e:Event){
	pos = soundChannel.position;
	soundChannel.stop();
	somPlay = false;
	play_btn.addEventListener(MouseEvent.CLICK, playsom);
}

function playsom(e:Event){
	if (somPlay == false) {
		soundChannel = currentSound.play(pos);
		soundChannel.addEventListener(Event.SOUND_COMPLETE, nextsom);
		somPlay = true;
		play_btn.removeEventListener(MouseEvent.CLICK, playsom);
	}
}

// SoundMixer.computeSpectrum.

var ba:ByteArray = new ByteArray();

// Cria o MC e adiciona ao palco.

var gr:Sprite = new Sprite();
var gr2:Sprite = new Sprite();
var blur:BlurFilter = new BlurFilter();
var filB:Array = new Array(blur);
gr.y = 90;
gr.x = 150;
gr.filters = filB;
blur.blurX = 5;
blur.blurY = 5;
blur.quality = 1;
addChild(gr);

var Mtime:Timer = new Timer (65);
Mtime.addEventListener(TimerEvent.TIMER, TCom);
Mtime.start();

function TCom(e:TimerEvent) {
	SoundMixer.computeSpectrum(ba, true);
	var i:int;
	gr.graphics.clear();
	// tamanho e cor da linha
	gr.graphics.lineStyle(0, 0x333333);
	// cor das barras
	gr.graphics.beginFill(0xa6dd22);
	
	// tamanho do width (largura) das barras
	var w:uint = 3;
	for (i=1; i<135; i+=w) {
		var t:Number = ba.readFloat();
		var n:Number = (t * 50);
		gr.graphics.drawRect(i, 0, w, -n);		
	}
}

// Slide e Volume
SlideM.slide_mc.x = widthPos;
SlideM.mouseEnabled = false;
SlideM.slide_mc.buttonMode = true;

SlideM.slide_mc.addEventListener(MouseEvent.MOUSE_DOWN,dragSlide);
stage.addEventListener(MouseEvent.MOUSE_UP,stopSlide);


	function dragSlide(e:MouseEvent){
		e.target.startDrag(false,bounds);
		addEventListener(Event.ENTER_FRAME, Volume);
		SlideM.slide_mc.alpha = 0.8;
	}
	function stopSlide(e:MouseEvent){
		SlideM.slide_mc.stopDrag();
		SlideM.slide_mc.alpha = 1;
	}
	function Volume(e:Event){
		ratio_volume = SlideM.slide_mc.x/widthPos;
		somVol.volume = ratio_volume;
		soundChannel.soundTransform = somVol;
	}

este é o code da raiz do meu fla...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tutorial do Thiago Bueno, legal esse player, usa um spectrum.

 

 

Faltou você postar a última linha do código na function Volume antes do fechamento da chave:

 

vol.text = "volume "+Math.round((SliderM.slider_mc.x)/(bounds.right-bound.left-1)*100+"%";

 

 

Fica legal informar as tentativas que já fez para obter o que deseja.

 

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

esta ultima linha eu tirei mesmo, pois não usaria...

 

já fiz tantas tentativas, tutoriais, sources, video aulas, etc, este é o que chegou mais perto do que eu preciso... já fiz algumas modificações...

 

mas preciso disto que escrevi, um botão que seja play e pause....

 

 

se puder ajudar serei grato...

 

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.