Comunidad de diseño web y desarrollo en internet online

Problema con fullscreen_as3

Citar            
MensajeEscrito el 24 Ago 2009 03:33 pm
Hola
Es la primero vez que me atreevo a preeguntar algo, gracias desde ya. :D
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

Por alamolasey

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Ago 2009 03:37 pm

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 24 Ago 2009 04:03 pm
Hola Jorge!
Gracias por tus observacion, lamento si he causado algun malestar. Lo recordaré para la próxima.
Cordialmente :oops:

Por alamolasey

1 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.