Es la primero vez que me atreevo a preeguntar algo, gracias desde ya.
Podria mirar por favor, porque no funciona el codigo del reproductor de video, tengo 2 poblemas a) el cuando lo publico y clickeo en el boton de fullecreen, me maximiza el flah y no la pelicula de video, por ende se ve todo deformado...este es el codigo que tengo. b) no logro que el hacer que cuando carga el video y esta en play hacer que cuando pinches stop pare. este el codigo que viene en el complemento. es larguisimo...algunas observacion, por favor.
Código ActionScript :
var loader:URLLoader = new URLLoader();
var xml:XML;
loadXML();
function loadXML():void {
if (stage!=null) {
startToLoad();
} else {
this.addEventListener(Event.ADDED_TO_STAGE,startToLoad);
}
}
function startToLoad(e:Event = null):void {
loader.load(new URLRequest("loading/play_list.xml"));
loader.addEventListener(Event.COMPLETE,onComplete);
function onComplete(e:Event):void {
trace("XML LOADED");
xml=new XML(e.target.data);
root.dispatchEvent(new Event("FILE_LOADED"));
// root.addChild(_video);
// root.addChild(control);
// root.video_player.visible = false;
}
}
import ro.fwd.utils.*;
import fl.transitions.Tween;
import fl.transitions.TweenEvent;
import fl.transitions.easing.Regular;
var targ:MovieClip=this;
var controlPanel:MovieClip=control;
var list:MovieClip=list_mc;
var _video:Video;
var souundT:SoundTransform;
var _nc:NetConnection;
var _ns:NetStream;
var _client:Object;
var duration:Number;
var currentVolume:Number=.7;
var isPlayng:Boolean;
var allowScrubing:Boolean;
var messageTween:Tween;
var isSmoothed:Boolean=true;
var isFullScreen:Boolean=false;
var snooth:Boolean=false;
var firstTimePlayng:Boolean=true;
var currentMovieId:Number=0;
var contW:Number=399;
var contH:Number=273;
var _videoW:Number;//the video width(this is the concrete videoW)
var _videoH:Number;//the video height(this is the concrete videoH)
var percent:Number;
var state:String;
//based on the onNetStatus info.code this function dispatches events
function onNetStatus(e:NetStatusEvent):void {
//trace(e.info.code);
if (e.info.code=="NetStream.Buffer.Full") {
state="START_PLAYING";
messageTween=new Tween(first_loading_mc,"alpha",Regular.easeOut,first_loading_mc.alpha,0,.5,true);
//dispatchEvent(new Event(VideoScreen.STOP_BUFFER));
//dispatchEvent(new Event(VideoScreen.START_PLAYING_FIRST_TIME));
} else if (e.info.code == "NetStream.Buffer.Empty") {
state="PAUSE_PLAYING";
//dispatchEvent(new Event(VideoScreen.START_BUFFER));
messageTween=new Tween(first_loading_mc,"alpha",Regular.easeOut,first_loading_mc.alpha,1,.5,true);
} else if (e.info.code == "NetStream.Play.Stop") {
//root.dispatchEvent(new Event("PLAY_NEXT_VIDEO"));
nextOrPrevMovie("next_mc");
//playVideo("loading/movies/1.flv");
state="STOP_PLAYING";
} else if (e.info.code == "NetStream.Seek.Notify") {
if ((state != "STOP_PLAYING") && (state != "PAUSE_PLAYING")) {
//dispatchEvent(new Event(VideoScreen.START_BUFFER));
messageTween=new Tween(first_loading_mc,"alpha",Regular.easeOut,first_loading_mc.alpha,1,.5,true);
} else {
//dispatchEvent(new Event(VideoScreen.STOP_BUFFER));
messageTween=new Tween(first_loading_mc,"alpha",Regular.easeOut,first_loading_mc.alpha,0,.5,true);
}
}
}
function playVideo(path:String):void {
try {
_ns.close();
} catch (e:Error) {
}
try {
_nc.close();
} catch (e:Error) {
}
try {
_video.clear();
} catch (e:Error) {
}
try {
MovieClip(root).removeChild(_video);
_video.clear();
} catch (e:Error) {
}
try {
removeChild(_video);
_video.clear();
} catch (e:Error) {
}
_nc = new NetConnection();
_nc.connect(null);
_ns=new NetStream(_nc);
_ns.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
_ns.bufferTime=4;
_video = new Video();
if (stage.displayState==StageDisplayState.FULL_SCREEN) {
MovieClip(root).addChildAt(_video,0);
} else {
addChildAt(_video,1);
}
_video.attachNetStream(_ns);
//Metadata
_client = new Object();
_client.onMetaData=setData;
_ns.client=_client;
_videoW=0;
_videoH=0;
percent=0;
first_loading_mc.alpha=1;
allowScrubing=false;
isPlayng=false;
disableNextAndPrev();
setVolume(currentVolume);
controlPanel.disableAllbuttons();
list.disableButtons();
_ns.play(path);
_video.visible=false;
//_ns.pause();
addEventListener(Event.ENTER_FRAME,checkVideoWidthAndHeight);
addEventListener(Event.ENTER_FRAME,setProgressBar);
removeEventListener(Event.ENTER_FRAME, setControls);
}
//check if the video width and height is not 0, after that we can dsipatch a RESIZE_VIDEO event to notice the listeners
function checkVideoWidthAndHeight(e:Event):void {
percent=_ns.bytesLoaded/_ns.bytesTotal;
if (_videoW==0||_videoH==0) {
_videoW=_video.videoWidth;
_videoH=_video.videoHeight;
_video.width=_videoW;
_video.height=_videoH;
}
if (_videoW!=0||_videoH!=0) {
_video.visible=false;
_ns.pause();
if (percent>=0.05) {
_ns.resume();
_video.visible=true;
}
if (_video.visible==true) {
if (stage.displayState==StageDisplayState.FULL_SCREEN) {
DisplayObjectResizer.resize(_video,_videoW,_videoH,stage.stageWidth,stage.stageHeight);
} else {
DisplayObjectResizer.resize(_video,_videoW,_videoH,contW,contH);
}
removeEventListener(Event.ENTER_FRAME,checkVideoWidthAndHeight);
addEventListener(Event.ENTER_FRAME, setControls);
isPlayng=true;
messageTween=new Tween(first_loading_mc,"alpha",Regular.easeOut,1,0,.5,true);
controlPanel.enableAllbuttons();
controlPanel.checkButtons(isPlayng);
list.checkButtons(currentMovieId);
enableNextAndPrev();
smoothVideo();
}
}
}
//this gets the vdeo metadata
function setData(obj:Object):void {
duration=obj.duration;
}
function smoothVideo():void {
_video.smoothing=true;
}
function replayMovie():void {
_ns.seek(0);
}
//--------------------SETING THE VOLUME-------------------------//
function setVolume(newVol:Number):void {
_ns.soundTransform=new SoundTransform(newVol);
}
function setControls(e:Event):void {
dragingScrub();
setTime();
time_total();
}
function setProgressBar(e:Event):void {
var loaded=_ns.bytesLoaded;
var total=_ns.bytesTotal;
var percent=loaded/total;
controlPanel.scruber_mc.scroll_percet.visible=true;
controlPanel.scruber_mc.scroll_percet.width=percent*controlPanel.scruber_mc.scroll_width.width;
if (percent==1) {
controlPanel.scruber_mc.scroll_percet.visible=false;
removeEventListener(Event.ENTER_FRAME,setProgressBar);
}
}
function dragingScrub():void {
if (allowScrubing) {
_ns.seek(duration * controlPanel.scruber_mc.drager.x / controlPanel.scruber_mc.scroll_width.width);
//trace(isPlayng);
if (isPlayng==true) {
_ns.resume();
controlPanel.checkButtons(isPlayng);
}
} else {
//var currentWidth:Number = (MovieClip(controlPanel.scrubingBar.scrub_track).width - MovieClip(controlPanel.scrubingBar.drag_mc).width);
controlPanel.scruber_mc.drager.x = (_ns.time / duration) * controlPanel.scruber_mc.scroll_width.width;
controlPanel.scruber_mc.scroll_face.width = (_ns.time / duration) * controlPanel.scruber_mc.scroll_width.width;
}
}
function setTime():void {
controlPanel.txt.text=time_fc();
controlPanel.txt_total.text=time_total();
}
//-------------------------CALCULATING TIME------------------//
function time_fc():String {
var minutesString:String;
var ns_seconds:Number=_ns.time;
var minutes:Number=Math.floor(ns_seconds/60);
var seconds=Math.floor(ns_seconds%60);
if (seconds<10) {
seconds="0"+seconds;
}
if (minutes<10) {
minutes=minutes;
minutesString="0"+minutes;
}
var time:String=minutesString+":"+seconds;
return time;
}
function time_total():String {
var minutesString:String;
var ns_seconds:Number=duration;
var minutes:Number=Math.floor(ns_seconds/60);
var seconds=Math.floor(ns_seconds%60);
if (seconds<10) {
seconds="0"+seconds;
}
if (minutes<10) {
minutes=minutes;
minutesString="0"+minutes;
}
var time:String=minutesString+":"+seconds;
return time;
}
//-----------------DISABLE AND ENABLE NEXT AND PREV BUTTON---------------//
function disableNextAndPrev():void {
next_mc.visible=false;
prev_mc.visible=false;
}
function enableNextAndPrev():void {
next_mc.visible=true;
prev_mc.visible=true;
}
//----------------------FUNCTION FOR NEXT AND PREV MOVIE---------------------//
function nextOrPrevMovie(buttonName:String):void {
if (buttonName=="next_mc") {
currentMovieId=currentMovieId+1;
if (currentMovieId==list.totalEntries) {
currentMovieId=0;
}
list.checkButtons(currentMovieId);
list.scr.setDragerPosition(currentMovieId,list.totalEntries);
playVideo(list.moviePath_ar[currentMovieId]);
} else if (buttonName == "prev_mc") {
if (currentMovieId==0) {
currentMovieId=list.totalEntries-1;
} else {
currentMovieId=currentMovieId-1;
}
list.checkButtons(currentMovieId);
playVideo(list.moviePath_ar[currentMovieId]);
list.scr.setDragerPosition(currentMovieId,list.totalEntries);
}
}
initFullScreen();
function initFullScreen():void {
stage.addEventListener(Event.FULLSCREEN, fullScreenHandler);
}
function fullScreenHandler(e:FullScreenEvent):void {
if (stage.displayState==StageDisplayState.FULL_SCREEN) {
MovieClip(root).video_player.visible=false;
MovieClip(root).addChild(_video);
MovieClip(root).addChild(control);
MovieClip(root).addChild(first_loading_mc);
control.x=stage.stageWidth/2-control.width/2;
control.y=stage.stageHeight-80;
first_loading_mc.x=stage.stageWidth/2;
first_loading_mc.y=stage.stageHeight/2;
control.focusRect=false;
stage.focus=stage;
DisplayObjectResizer.resize(_video,_videoW,_videoH,stage.stageWidth,stage.stageHeight);
} else if (stage.displayState == StageDisplayState.NORMAL) {
MovieClip(root).video_player.visible=true;
MovieClip(root).video_player.addChildAt(_video,1);
MovieClip(root).video_player.addChildAt(control,1);
MovieClip(root).video_player.addChild(first_loading_mc);
first_loading_mc.x=contW/2;
first_loading_mc.y=contH/2;
control.x=2.7;
control.y=243;
DisplayObjectResizer.resize(_video,_videoW,_videoH,contW,contH);
}//stage.scaleMode = MovieClip(root).video_player.VideoScaleMode.MAINTAIN_ASPECT_RATIO;
//stage.align = MovieClip(root).video_player.VideoAlign.CENTER;
//MovieClip(root).video_player.fullScreenTakeOver=true;
}
};
Cordialmente
alamolasey
