1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
|
package
{
import com.greensock.events.LoaderEvent;
import com.greensock.loading.display.ContentDisplay;
import com.greensock.loading.LoaderMax;
import com.greensock.loading.VideoLoader;
import com.greensock.TweenMax;
import com.iesa.formes.Rect;
import com.iesa.textes.Txt;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.NetStatusEvent;
import flash.events.TimerEvent;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.text.TextField;
import flash.utils.Timer;
/**
* ...
* @author camF
*/
public class Main extends MovieClip
{
private var btn_play:BtnPlay;
private var _nC:NetConnection;
private var _nS:NetStream;
private var _vid:Video;
private var _nav:BarreNavigation;
private var _dur:Number = 0;
private var _barPrg:Rect;
private var _barChgmt:Rect;
private var t:Timer;
private var pourcentage:Number;
private var cue;
private var btn_pause:BtnPause;
private var queue:LoaderMax;
//private var t:Timer;
//private var t:TextField;
//create a LoaderMax named "mainQueue" and set up onProgress, onComplete and onError listeners
//var queue:LoaderMax;
public function Main()
{
trace ("Main instanciée");
_nC = new NetConnection();
_nC.connect(null);
//Création d'un objet qui permet de récupérer les données metaDatas
//Il peut également servir Ã* récupérer les images clés 'onCuePoints'
var Klient:Object = new Object();
Klient.onMetaData = meta;
//Klient.OnCuePoints = cue;
//Objet NetStream (flux video)
_nS = new NetStream(_nC);
_nS.client = Klient;
_nS.addEventListener(NetStatusEvent.NET_STATUS, statut);
//Associe un fichier au flux
_nS.play("CamD.flv");
_nS.seek(0);
_nS.pause();
//Mise en place de la video
_vid = new Video(700,400);
_vid.attachNetStream(_nS);
//_vid.alpha = 1;
addChild(_vid);
_vid.visible = false;
//barre de navigation
_nav = new BarreNavigation();
_nav.x = stage.stageWidth * .5;
_nav.y = 390;
_nav.addEventListener(MouseEvent.CLICK, clicPause);
//Barre de progression
_barPrg = new Rect(0, 250, 1, 10, { cF:0xFF0000 } );
_barPrg.visible = false;
btn_play = new BtnPlay();
btn_play.x = stage.stageWidth * .5;
btn_play.y = stage.stageHeight * .5;
addChild(btn_play);
//Quand on clique sur le play
btn_play.addEventListener(MouseEvent.CLICK, clicPlay);
//Ajout de la video Ã* la liste d'affichage
//addChild(_vid);
//Barre de chargement
_barChgmt = new Rect(0, 250, 1, 10, { cF:0x00FF00 } );
addChild(_barChgmt);
t = new Timer(100);
t.addEventListener(TimerEvent.TIMER, prgVid);
t.start();
//append several loaders
//queue = new LoaderMax({name:"mainQueue", onProgress:progressHandler, onComplete:completeHandler, onError:errorHandler});
//queue.append( new VideoLoader("camF3.flv", { name:"myVideo", container:this, width:400, height:300, scaleMode:"proportionalInside", bgColor:0x000000, autoPlay:false } ));
//LoaderMax.prioritize("camF3.flv");
}
private function prgVid(e:TimerEvent):void
{
trace("Progress :", _nS.bytesLoaded, _nS.bytesLoaded / _nS.bytesTotal);
_barChgmt.w = _nS.bytesLoaded / _nS.bytesTotal * 200;
addChild(_barChgmt);
}
//bouton play
private function clicPlay(e:MouseEvent):void
{
//Relance la vidéo
_nS.resume();
//Quand on clique sur play, le bouton play disparait et la vidéo s'affiche
btn_play.visible = false;
_vid.visible = true;
_barPrg.visible = true;
addChild(_barPrg);
addChild(_nav);
}
private function clicPause(e:MouseEvent):void
{
btn_play.visible = true;
//_vid.alpha = 0.9;
_nS.pause();
removeChild(_nav);
trace("pause");
}
private function statut(e:NetStatusEvent):void
{
trace(e.info.code);
}
//données de la vidéo
private function meta(o:Object):void
{
trace(o.duration);
_dur = o.duration;
addEventListener(Event.ENTER_FRAME, progressLecture);
}
//Progression de la lecture de la vidéo
private function progressLecture(e:Event):void
{
trace(_nS.time / _dur);
_barPrg.x = 70;
_barPrg.y = 385;
_barPrg.w = (_nS.time / _dur) * 320;
}
//*************FONCTION LOADERMAX********************
function progressHandler(event:LoaderEvent):void {
trace("progress: " + event.target.progress);
}
function completeHandler(event:LoaderEvent):void {
var video:ContentDisplay = LoaderMax.getContent("camF3.flv");
TweenMax.to(video, 1, {alpha:1, y:100});
trace(event.target + " is complete!");
}
function errorHandler(event:LoaderEvent):void {
trace("error occured with " + event.target + ": " + event.text);
}
}
} |
Partager