root/tags/mediaplayer-4.0/yt.as

Revision 90, 2.9 kB (checked in by jeroen, 13 months ago)

tagged 4.2 mediaplayer and 1.0 desktopplayer and removed 4.2 branch

Line 
1// Security domains
2System.security.allowDomain('*');
3System.security.allowInsecureDomain('*');
4
5
6
7// Variables
8var ytPlayer:MovieClip = this.createEmptyMovieClip("ytPlayer",this.getNextHighestDepth());
9var ytPlayerLoader:MovieClipLoader = new MovieClipLoader();
10var ytLocation:String = "http://gdata.youtube.com/apiplayer/cl.swf?key=AI39si5vap3DRPYttWUdJutb5aeUHz7-uPnwWMt4X9QgzwBQqSOl5r6Tzd0Su3MPJx_9t8LR5zi-bw5ztLcxIOh-Auj-fiiYEw";
11var _as3_to_as2:LocalConnection = new LocalConnection();
12var _as2_to_as3:LocalConnection = new LocalConnection();
13_as3_to_as2.allowDomain('*');
14_as2_to_as3.allowDomain('*');
15var loadInterval:Number;
16var byteInterval:Number;
17var timeInterval:Number;
18var loaded:Number;
19var position:Number;
20
21
22
23// Interval handlers
24function loadHandler() {
25        if (ytPlayer.isPlayerLoaded()) {
26                _as2_to_as3.send("_AS2_to_AS3","onSwfLoadComplete");
27                clearInterval(loadInterval);
28                ytPlayer.addEventListener("onStateChange", onPlayerStateChange);
29                ytPlayer.addEventListener("onError", onPlayerError);
30                ytPlayer.setSize(320,240);
31        }
32};
33function byteHandler() {
34        var btl = ytPlayer.getVideoBytesLoaded();
35        var ttl = ytPlayer.getVideoBytesTotal();
36        var off =  ytPlayer.getVideoStartBytes();
37        if(ttl > 10 && btl != loaded) {
38                loaded = btl;
39                _as2_to_as3.send("_AS2_to_AS3","onLoadChange",btl,ttl,off);
40                if(btl+off >= ttl) {
41                        clearInterval(byteInterval);
42                }
43        }
44};
45function timeHandler() {
46        var pos = Math.round(ytPlayer.getCurrentTime()*10)/10;
47        var dur = Math.round(ytPlayer.getDuration()*10)/10;
48        if(dur > 3) {
49                if(pos == position && dur-pos < 10) {
50                        onPlayerStateChange(0);
51                } else {
52                        _as2_to_as3.send("_AS2_to_AS3","onTimeChange",pos,dur);
53                }
54        }
55        position = pos;
56};
57
58
59
60// Event handlers
61function onPlayerStateChange(stt:Number) {
62        clearInterval(timeInterval);
63        if(stt == 1) {
64                timeInterval = setInterval(timeHandler,200);
65        } else if (stt == 3) {
66                clearInterval(byteInterval);
67                byteInterval = setInterval(byteHandler,200);
68                timeInterval = setInterval(timeHandler,200);
69        }
70        _as2_to_as3.send("_AS2_to_AS3","onStateChange",stt);
71};
72function onPlayerError(erc:Number) {
73        _as2_to_as3.send("_AS2_to_AS3","onError",stt);
74        clearInterval(timeInterval);
75};
76
77
78
79// Directive forwards
80_as3_to_as2.pauseVideo = function() { ytPlayer.pauseVideo(); };
81_as3_to_as2.playVideo = function() { ytPlayer.playVideo(); };
82_as3_to_as2.stopVideo = function(){
83        ytPlayer.stopVideo();
84        clearInterval(byteInterval);
85};
86_as3_to_as2.loadVideoById = function(id,pos) { ytPlayer.loadVideoById(id,pos); };
87_as3_to_as2.setVolume = function(vol) { 
88        ytPlayer.unMute();
89        ytPlayer.setVolume(vol);
90};
91_as3_to_as2.seekTo = function(pos) { ytPlayer.seekTo(pos,true); };
92_as3_to_as2.setSize = function(wid,hei) { ytPlayer.setSize(wid,hei); };
93
94
95
96// Initialization
97_as3_to_as2.connect("_AS3_to_AS2");
98ytPlayerLoaderListener = {};
99ytPlayerLoaderListener.onLoadInit = function() {
100        loadInterval = setInterval(loadHandler,200);
101};
102ytPlayerLoader.addListener(ytPlayerLoaderListener);
103ytPlayerLoader.loadClip(ytLocation,ytPlayer);
Note: See TracBrowser for help on using the browser.