par
Invité » 18 août 2010, 09:48
Bonjour,
Merci beaucoup pour cette réponse rapide.
Voici un aperçu complet de la structure de la classe. Il n'y a pas tout, juste des morceaux représentatifs pour voir comment la classe est constituée:
function ThreeSixtyPlayer() {
//initialisation de divers paramètres
var self = this;
var pl = this;
var sm = soundManager; // soundManager instance
var isIE = (navigator.userAgent.match(/msie/i));
this.links = [];
this.sounds = [];
this.soundsByURL = [];
this.config = {
playNext: false, // stop after one sound, or play through list until end
autoPlay: false, // start playing the first sound right away
loadRingColor: '#bbbbbb', // how much has loaded
}
//définition de méthodes diverses
this.addEventHandler = function(o,evtName,evtHandler) {
typeof(attachEvent)=='undefined'?o.addEventListener(evtName,evtHandler,false):o.attachEvent('on'+evtName,evtHandler);
}
this.removeEventHandler = function(o,evtName,evtHandler) {
typeof(attachEvent)=='undefined'?o.removeEventListener(evtName,evtHandler,false):o.detachEvent('on'+evtName,evtHandler);
}
this.hasClass = function(o,cStr) {
return (typeof(o.className)!='undefined'?o.className.match(new RegExp('(\\s|^)'+cStr+'(\\s|$)')):false);
}
this.addClass = function(o,cStr) {
if (!o || !cStr || self.hasClass(o,cStr)) return false;
o.className = (o.className?o.className+' ':'')+cStr;
}
this.removeClass = function(o,cStr) {
if (!o || !cStr || !self.hasClass(o,cStr)) return false;
o.className = o.className.replace(new RegExp('( '+cStr+')|('+cStr+')','g'),'');
}
//définition d'événements (extrait identique au post précédent
this.events = {
// handlers for sound events as they're started/stopped/played
play: function() {
pl.removeClass(this._360data.oUIBox,this._360data.className);
this._360data.className = pl.css.sPlaying;
pl.addClass(this._360data.oUIBox,this._360data.className);
self.fanOut(this);
},
stop: function() {
pl.removeClass(this._360data.oUIBox,this._360data.className);
this._360data.className = '';
self.fanIn(this);
},
this.init = function() {
/**** code d'initialisation ***/
}
}
Et pour utiliser cette classe, je fais ceci:
//instanciation de la classe
threeSixtyPlayer.init();
//bouton qui déclenche les événements
$('.p_playerbutton').click(function(){
alert(threeSixtyPlayer.events.pause); //mon test qui affiche bien la fonction de l'événement délcenché. Je cherche à afficher le nom de la fonction plutôt que le contenu de la fonction
});
Bonjour,
Merci beaucoup pour cette réponse rapide.
Voici un aperçu complet de la structure de la classe. Il n'y a pas tout, juste des morceaux représentatifs pour voir comment la classe est constituée:
[php]
function ThreeSixtyPlayer() {
//initialisation de divers paramètres
var self = this;
var pl = this;
var sm = soundManager; // soundManager instance
var isIE = (navigator.userAgent.match(/msie/i));
this.links = [];
this.sounds = [];
this.soundsByURL = [];
this.config = {
playNext: false, // stop after one sound, or play through list until end
autoPlay: false, // start playing the first sound right away
loadRingColor: '#bbbbbb', // how much has loaded
}
//définition de méthodes diverses
this.addEventHandler = function(o,evtName,evtHandler) {
typeof(attachEvent)=='undefined'?o.addEventListener(evtName,evtHandler,false):o.attachEvent('on'+evtName,evtHandler);
}
this.removeEventHandler = function(o,evtName,evtHandler) {
typeof(attachEvent)=='undefined'?o.removeEventListener(evtName,evtHandler,false):o.detachEvent('on'+evtName,evtHandler);
}
this.hasClass = function(o,cStr) {
return (typeof(o.className)!='undefined'?o.className.match(new RegExp('(\\s|^)'+cStr+'(\\s|$)')):false);
}
this.addClass = function(o,cStr) {
if (!o || !cStr || self.hasClass(o,cStr)) return false;
o.className = (o.className?o.className+' ':'')+cStr;
}
this.removeClass = function(o,cStr) {
if (!o || !cStr || !self.hasClass(o,cStr)) return false;
o.className = o.className.replace(new RegExp('( '+cStr+')|('+cStr+')','g'),'');
}
//définition d'événements (extrait identique au post précédent
this.events = {
// handlers for sound events as they're started/stopped/played
play: function() {
pl.removeClass(this._360data.oUIBox,this._360data.className);
this._360data.className = pl.css.sPlaying;
pl.addClass(this._360data.oUIBox,this._360data.className);
self.fanOut(this);
},
stop: function() {
pl.removeClass(this._360data.oUIBox,this._360data.className);
this._360data.className = '';
self.fanIn(this);
},
this.init = function() {
/**** code d'initialisation ***/
}
}
[/php]
Et pour utiliser cette classe, je fais ceci:
[php]
//instanciation de la classe
threeSixtyPlayer.init();
//bouton qui déclenche les événements
$('.p_playerbutton').click(function(){
alert(threeSixtyPlayer.events.pause); //mon test qui affiche bien la fonction de l'événement délcenché. Je cherche à afficher le nom de la fonction plutôt que le contenu de la fonction
});
[/php]