Última esperança
Boa noite Galera
Quem puder me ajudar eu agradeço de coração... é o seguinte criei uma classe de video mais simplesmente não consigo cancelar o download do video já tentei de tudo criar outro objeto por cima, pausar a classe NetStream com o metodo pause mais não vai, essa classe foi baseada no tutorial do marcelo Duende (http://www.marceloduende.com.br/blog/?p=17) quem souber usar o firebug do firefox vai ver que o flash não pausa o carregamento.
segue abaixo a classe.
package classes
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.MouseEvent;
import flash.events.NetStatusEvent;
import flash.media.SoundTransform;
import flash.geom.Rectangle;
import flash.display.LoaderInfo;
import flash.text.TextField;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.media.Video;
import flash.events.ProgressEvent;
public class ClasseVideo extends MovieClip
{
//--> Video |------------------------------------------------------------
private var MeuVideo:Video;
//--> conexão |----------------------------------------------------------
private var netConnection:NetConnection;
private var netStream:NetStream;
//--> Som |--------------------------------------------------------------
private var somTransform:SoundTransform = new SoundTransform();
//--> variaveis da classe |----------------------------------------------
private var duracao:int = 15000;
private var tempoAtual:Number;
private var volumeSom:Number = 1;
private var urlCaminho:String = new String();
private var videoPropriedades:Object;
private var videoMc:MovieClip;
private var qualFuncaoCompleto:Function;
private var porcentagemCarregador:Number;
private var tempoCorrenteTemp:Array;
private var proporcao:Number;
//--> insere Controle |--------------------------------------------------
private var botaoPlay:MovieClip;
private var botaoStop:MovieClip;
private var botaoVolume:MovieClip;
private var botaoDrag:MovieClip;
private var controlesAtivos:Boolean = false;
private var mascaraProgresso:MovieClip;
private var barraProgresso:MovieClip;
//----------------------------------------------------------------------------
private var tamWVideo:Number;
private var tamHVideo:Number;
private var tamWStage:Number;
private var tamHStage:Number;
public function ClasseVideo(_urlCaminho:String, _videoMc:MovieClip, _tempoBuffer:uint = 5):void
{
urlCaminho = _urlCaminho;
videoMc = _videoMc
MeuVideo = new Video();
netConnection = new NetConnection()
netConnection.connect(null);
netStream = new NetStream(netConnection);
netStream.bufferTime = _tempoBuffer;
netStream.play(urlCaminho);
netStream.seek(0);
netStream.pause();
videoPropriedades = {onMetaData:propriedades};
netStream.client = videoPropriedades;
netStream.soundTransform = somTransform;
videoMc.addChild(MeuVideo);
MeuVideo.name = "repositorioVideo";
MeuVideo.alpha = 0;
MeuVideo.attachNetStream(netStream);
netStream.addEventListener(NetStatusEvent.NET_STATUS, videoStatus);
somTransform.volume = 1;
videoMc.addEventListener(Event.ENTER_FRAME, progressoCarregamento);
}
private function videoStatus(_evt:NetStatusEvent):void
{
tamHStage = MovieClip(videoMc.loaderInfo.content).stage.stageHeight;
tamWStage = MovieClip(videoMc.loaderInfo.content).stage.stageWidth;
proporcao = tamHVideo/tamWVideo;
MeuVideo.width = tamWStage
MeuVideo.height = tamWStage*proporcao;
}
private function propriedades(infoVideo:Object):void
{
/*for (var name:String in infoVideo)
{
//trace(name)
}*/
tamHVideo = infoVideo.height;
tamWVideo = infoVideo.width;
duracao = infoVideo.duration;
MovieClip(videoMc).stage.addEventListener(Event.RESIZE, chamaAdapta);
tamHStage = MovieClip(videoMc.loaderInfo.content).stage.stageHeight-60;
tamWStage = MovieClip(videoMc.loaderInfo.content).stage.stageWidth;
proporcao = tamHVideo/tamWVideo;
MeuVideo.width = tamWStage
MeuVideo.height = tamWStage*proporcao;
if(MeuVideo.height < tamHStage)
{
MeuVideo.y = (tamHStage/2)-(MeuVideo.height/2);
}else
{
MeuVideo.y = 0;
}
}
//--> carregamento video |-------------------------------------------------------------------
private function progressoCarregamento(_evt:Event):void
{
porcentagemCarregador = (netStream.bytesLoaded /netStream.bytesTotal);
if(netStream.bytesLoaded == netStream.bytesTotal)
{
videoCarregado();
videoMc.removeEventListener(Event.ENTER_FRAME, progressoCarregamento);
}
}
public function get porcentagemLoad():Number
{
return porcentagemCarregador;
}
public function set funcaoCompleta(_qualFuncao:Function):void
{
qualFuncaoCompleto = _qualFuncao;
}
private function videoCarregado():void
{
iniciaVideo();
if(qualFuncaoCompleto != null)
{
qualFuncaoCompleto();
}
}
//--> inicio da função play/pause |----------------------------------------------------------
public function iniciaVideo():void
{
if (botaoPlay.botaoAtivo == false)
{
MeuVideo.alpha = 1;
netStream.resume();
botaoPlay.botaoAtivo = true;
}else
{
pausa();
}
}
public function pausa():void
{
netStream.pause();
tempoAtual = netStream.time;
botaoPlay.botaoAtivo = false;
}
//--> inicio da função stop |----------------------------------------------------------
public function paraVideo():void
{
if (botaoStop.botaoAtivo == true)
{
netStream.pause();
netStream.seek(0);
if(botaoPlay != null)
{
botaoPlay.botaoAtivo = false;
}
}
}
//--> inicio da função de volume |----------------------------------------------------------
public function ajustaVolume():void
{
if (botaoVolume.botaoAtivo == false)
{
addEventListener(Event.ENTER_FRAME, FadeVolume);
botaoVolume.botaoAtivo = true;
} else {
addEventListener(Event.ENTER_FRAME, FadeVolume);
botaoVolume.botaoAtivo = false;
}
}
private function FadeVolume(_evt:Event):void
{
if (botaoVolume.botaoAtivo == true)
{
volumeSom -= 0.1;
if (volumeSom <= 0)
{
volumeSom = 0;
removeEventListener(Event.ENTER_FRAME, FadeVolume);
}
} else {
volumeSom += 0.1;
if (volumeSom >= 1)
{
volumeSom = 1;
removeEventListener(Event.ENTER_FRAME, FadeVolume);
}
}
somTransform.volume = volumeSom;
netStream.soundTransform = somTransform;
}
//--> inicio da função de tempo (drag) |----------------------------------------------------------
public function get tempoVideo():Array
{
tempoAtual = netStream.time;
tempoCorrenteTemp = new Array(int(tempoAtual/60),((tempoAtual%60) < 10)?"0"+(tempoAtual%60):(tempoAtual%60),tempoAtual);
return tempoCorrenteTemp;
}
public function get tempoTotalVideo():int
{
return duracao;
}
public function insereControle(_botaoPlay:MovieClip, _botaoStop:MovieClip, _botaoVolume:MovieClip = null, _botaoDrag:MovieClip = null, _mascaraProgresso:MovieClip = null, _barraProgresso:MovieClip = null):void
{
controlesAtivos = true;
botaoPlay = _botaoPlay;
botaoStop = _botaoStop;
botaoVolume = _botaoVolume;
botaoDrag = _botaoDrag;
mascaraProgresso = _mascaraProgresso;
barraProgresso = _barraProgresso;
if(botaoPlay != null)
{
botaoPlay.botaoAtivo = false;
}
if(botaoStop != null)
{
botaoStop.botaoAtivo = true;
}
if(botaoVolume != null)
{
botaoVolume.botaoAtivo = false;
}
if(botaoDrag != null)
{
botaoDrag.botaoAtivo = false;
}
}
private function chamaAdapta(evt:Event):void
{
//trace("chamaAdapta!!", urlCaminho,videoMc.name);
tamHStage = MovieClip(videoMc.loaderInfo.content).stage.stageHeight-60;
tamWStage = MovieClip(videoMc.loaderInfo.content).stage.stageWidth;
proporcao = tamHVideo/tamWVideo;
MeuVideo.width = tamWStage
MeuVideo.height = tamWStage*proporcao;
if(MeuVideo.height < tamHStage)
{
MeuVideo.y = (tamHStage/2)-(MeuVideo.height/2);
}else
{
MeuVideo.y = 0;
proporcao = tamWVideo/tamHVideo;
MeuVideo.width = tamHStage*proporcao;
MeuVideo.height = tamHStage;
if(MeuVideo.width < tamWStage)
{
MeuVideo.x = (tamWStage/2)-(MeuVideo.width/2);
}
}
}
public function cancelaOuvintes():void
{
MovieClip(videoMc).removeEventListener(Event.RESIZE, chamaAdapta);
if(MeuVideo != null && MovieClip(videoMc).contains(MeuVideo))
{
MovieClip(videoMc).removeChild(MeuVideo);
}
}
}
}
valew pessoall
Daniel D2
Discussão (2)
Carregando comentários...