2010-03-04 3 views
1

Je veux faire quelque chose comme ça ...classe à titre d'observateur événement

var Color = Class.create({ 
    initialize: function() { 
     this._color = "white"; 
     this.observe("evt: colorChanged", this.colorChanged.bind(this)); 
    }, 
    changeColor: function(color) { 
     this._color = color; 
     this.fire("evt: colorChanged"); 
    }, 
    colorChanged: function(event) { 
     alert("You change my color!"); 
    } 
}); 
var a = new Color().changeColor("blue"); 

Pourquoi l'événement colorChange personnalisé ne sera jamais envoyée et je dois utiliser, au lieu de this, un élément DOM comme document.observe?

Dans mon code je voudrais savoir quelle classe distribue l'événement en utilisant event.target et je ne peux pas si je dois utiliser document ou un autre élément DOM. :(

Je travaille dans Actionscript 3 et c'est la méthode que j'ai appris à travailler avec des événements personnalisés dans les classes Qu'en Javascript

Répondre

0

Cela devrait fonctionner.?

var Color = Class.create({ 
    initialize: function() { 
     this._color = "white"; 
     Event.observe(document, "evt: colorChanged", this.colorChanged.bind(this)); 
    }, 
    changeColor: function(color) { 
     this._color = color; 
     Event.fire(document, "evt: colorChanged", this, false); 
    }, 
    colorChanged: function(event) { 
     alert("You change my color!"); 
    } 
}); 
var a = new Color().changeColor("blue"); 
Questions connexes