Youtube Player Loader Class in AS2
Just a little class that I made this week to load the youtube flash player in a flash. This class is made in action script 2 with the help of the pixlib.
import com.bourre.commands.Delegate;
import com.bourre.events.BasicEvent;
import com.bourre.events.EventType;
import com.bourre.events.NumberEvent;
import com.bourre.visual.MovieClipHelper;
import com.bourre.commands.CommandManagerMS;
import com.bourre.core.HashCodeFactory;
/**
* @author Rajabaly Nicolas
* @version 0.1
*/
class YoutubeLoader extends MovieClipHelper {
private var _mc:MovieClip;
private var _scale:Number;
private var _commandMs:CommandManagerMS;
private var _delCheckPlayer:Delegate;
private var _mcl:MovieClipLoader;
private var _listener:Object;
//
static public var LOAD_START:EventType = new EventType("onLoadYoutubePlayerStart");
static public var LOAD_PROGRESS:EventType = new EventType("onLoadYoutubePlayerProgress");
static public var LOAD_COMPLETE:EventType = new EventType("onLoadYoutubePlayerComplete");
static public var PLAYER_IS_READY:EventType = new EventType("onYoutubePlayerReady");
static public var PLAYERLOADER_IS_OPEN:EventType = new EventType("onYoutubeLoaderOpen");
static public var PLAYERLOADER_IS_CLOSE:EventType = new EventType("onYoutubeLoaderClose");
public function YoutubeLoader(name:String, mc:MovieClip) {
super(name, mc);
_commandMs = CommandManagerMS.getInstance();
_delCheckPlayer = new Delegate(this, _checkPlayer);
System.security.allowDomain("http://youtube.com");
}
private function _checkPlayer():Void{
if (_mc.isPlayerLoaded()) {
_commandMs.remove(_delCheckPlayer);
_mc._alpha=100;
_mc._xscale = _mc._yscale = _scale;
_oEB.dispatchEvent(new BasicEvent(PLAYER_IS_READY));
}
}
private function _loadProgressPlayer(myTarget:MovieClip, myBytesLoaded:Number, myBytesTotal:Number):Void {
var myPrcent:Number = Math.round(myBytesLoaded / myBytesTotal * 100);
_oEB.dispatchEvent(new NumberEvent(LOAD_PROGRESS, myPrcent));
}
private function _loadCompletePlayer():Void {
_oEB.dispatchEvent(new BasicEvent(LOAD_COMPLETE));
_commandMs.delay(_delCheckPlayer, 250);
}
private function _loadStartPlayer():Void {
_oEB.dispatchEvent(new BasicEvent(LOAD_START));
}
public function open(myId:String, myScale:Number):Void {
_scale = myScale;
_mc = view.createEmptyMovieClip(HashCodeFactory.getNextName(), 1);
_mc._alpha=0;
_mcl = new MovieClipLoader();
_listener = new Object();
_listener.onLoadStart = Delegate.create(this, _loadStartPlayer);
_listener.onLoadProgress = Delegate.create(this, _loadProgressPlayer);
_listener.onLoadInit = Delegate.create(this, _loadCompletePlayer);
_mcl.addListener(_listener);
_mcl.loadClip("http://youtube.com/v/" + myId, _mc);
_oEB.dispatchEvent(new BasicEvent(PLAYERLOADER_IS_CLOSE));
}
public function release():Void {
stopAllSounds();
_mc.removeMovieClip();
_mcl.removeListener(_listener);
_oEB.dispatchEvent(new BasicEvent(PLAYERLOADER_IS_OPEN));
super.release();
}
}
To use it in flash :
import YoutubeLoader;
import com.bourre.commands.Delegate;
import com.bourre.events.NumberEvent;
import com.bourre.events.BasicEvent;
var myLoader:YoutubeLoader=new YoutubeLoader("THENAMEOFTHELOADERINSTANCE",this.createEmptyMovieClip("loadertest",this.getNextHighestDepth()));
myLoader.addEventListener(YoutubeLoader.LOAD_START,Delegate.create(this,_loadStart));
myLoader.addEventListener(YoutubeLoader.LOAD_PROGRESS,Delegate.create(this,_loadprogress));
myLoader.addEventListener(YoutubeLoader.LOAD_COMPLETE,Delegate.create(this,_loadComplete));
myLoader.addEventListener(YoutubeLoader.PLAYER_IS_READY,Delegate.create(this,_playerReady));
myLoader.addEventListener(YoutubeLoader.PLAYERLOADER_IS_OPEN,Delegate.create(this,_playerLoaderOpen));
myLoader.addEventListener(YoutubeLoader.PLAYERLOADER_IS_CLOSE,Delegate.create(this,_playerLoaderClose));
myLoader.open("37t52UpCaGE",200);
//myLoader.close();
function _loadStart(e:BasicEvent):Void{
trace("_loadStart");
}
function _loadprogress(e:NumberEvent):Void{
trace("_loadprogress"+e.getNumber());
}
function _loadComplete(e:BasicEvent):Void{
trace("_loadComplete");
}
function _playerReady(e:BasicEvent):Void{
trace("_playerReady");
}
function _playerLoaderOpen(e:BasicEvent):Void{
trace("_playerLoaderOpen");
}
function _playerLoaderClose(e:BasicEvent):Void{
trace("_playerLoaderClose");
}
Enjoy ![]()


3 Comments
Jump to comment form | comments rss [?] | trackback uri [?]