1 /** 2 * 3 * @description An one Player engine copy 4 * @constructor 5 * @class 6 * @version 0.1a 7 */ 8 function SntPlayer(id, swfobject){ 9 this.id = id; 10 this.c = 0; 11 this.registered = false; 12 this.player = null; 13 this.eventListeners = {}; 14 window.getSntHolderInstance().registerPlayer(this.id, this); 15 } 16 17 /** 18 * @function 19 * @description This function change player status or return it 20 * @param {boolean} status It's optional parameter to set status of the player 21 * @return boolean 22 */ 23 SntPlayer.prototype.register = function(status){ 24 if(status == null)return this.registered; 25 this.registered = status; 26 return this.registered; 27 } 28 29 /** 30 * @function 31 * @description Method for sending messages to holder 32 * @see SntEventsHolder#sendMessage 33 * @param command It's ID from which command we receive message 34 * @param args Array with data 35 * @param callback Callback function 36 */ 37 SntPlayer.prototype.sendMessage = function(command, args, callback){ 38 window.getSntHolderInstance().sendMessage(command, this.id, args); 39 this.eventListeners[command] = callback; 40 } 41 42 43 /** 44 * @function 45 * @description Method for receiving messages from holder 46 * @see SntEventsHolder#receiveMessage 47 * @param command It's ID from which command we receive message 48 * @param args Array with data 49 */ 50 SntPlayer.prototype.receiveMessage = function(command, args){ 51 if(this.eventListeners[command] != null){ 52 var mNum = this.c++; 53 var name = 'f' + mNum; 54 this[name] = this.eventListeners[command]; this[name](args); 55 this[name] = null; 56 } 57 } 58 59 60 /** 61 * @function 62 * @description isArray function - Checking whether object is Array or not 63 * @param object test Object 64 * @returns Boolean 65 */ 66 SntPlayer.prototype._isArray = function(o){ 67 return o && typeof o === "object" && o.constructor === Array; 68 } 69 /** 70 * @function 71 * @description Add new event to event listeners 72 * @see SntEventsHolder#addEventListener 73 * @param event String or Array Event ID or IDs from Player engine events list 74 * @param callback Callback funciton 75 */ 76 SntPlayer.prototype.addEventListener = function(eventObject, callback){ 77 //add just one event if event isn't Array 78 var events = eventObject; 79 if(!this._isArray(eventObject)){ 80 events = [eventObject]; 81 } 82 for(var i in events){ 83 this.eventListeners[events[i]] = callback; 84 window.getSntHolderInstance().addEventListener(events[i], this.id); 85 } 86 } 87 88 /** 89 * @function 90 * @description Remove an event frome event listener 91 * @see SntEventsHolder#removeEventListener 92 * @param event String or Array Event ID or IDs from Player engine events list 93 * @param callback Callback funciton 94 */ 95 SntPlayer.prototype.removeEventListener = function(eventObject){ 96 var events = eventObject; 97 if(!this.isArray(eventObject)){ 98 events = [eventObject]; 99 } 100 for(var i in events){ 101 this.eventListeners[event[i]] = null; 102 window.getSntHolderInstance().removeEventListener(events[i], this.id); 103 } 104 } 105 106 /** 107 * @function 108 * @description Add ready callback to player engine 109 * @see SntEventsHolder#addEventListener 110 * @param callback Callback funciton 111 */ 112 SntPlayer.prototype.ready = function(callback){ 113 // if player already sent register event 114 this.addEventListener(Sonettic.Helper.getConstant('EVENT_REGISTER'), callback); 115 if(this.register()){ 116 this.receiveMessage(Sonettic.Helper.getConstant('EVENT_REGISTER')); 117 } 118 119 } 120 121 122