2016-03-19 5 views
0

Ich versuche ein Partikel zu erstellen, das sich nach der Mausposition bewegt. Also habe ich eine Klasse erstellt, die ein Partikel erzeugt. Und ich bin in der Lage ein Ereignis-Listener hinzufügen, durch den Aufruf „handleMouseEvent()“Easeljs (createjs) kann zwei Ereignis-Listener nicht binden

Bitte beachten Sie diese Geige:

http://bit.ly/1UczZvF

Erwartetes Ergebnis ist sowohl zwei Teilchen, die durch Mausaktionen bewegt. Aber das Ergebnis ist; Nur ein Partikel bewegt sich, der erste Ereignis-Listener wird außer Kraft gesetzt.

Am unteren Ende des Codes sehen Sie zwei erstellen Verfahren. Wenn ich zwei create-Prozeduren aufrufen, überschreibt der zweite den ersten Event-Listener.

Können Sie mir bitte raten, warum dieser Code nicht funktioniert?

Antwort

1

Ich modifizierte Ihre Geige, um den scope Parameter der on() Methode zu verwenden, die viel sauberer ist. I denke, es funktioniert jetzt (nicht genau, was Sie wollten), aber es betrifft beide Teilchen.

particleClass.prototype.handleMouseEvent=function(){ 
    stage.on("stagemousemove",function(){ 
     console.log(this.currentX); 
     this.setXYByMousePosition(stage.mouseX,stage.mouseY); 
    }, this); 
    return this; 
}; 

Hier ist die aktualisierte Version: https://jsfiddle.net/lannymcnie/xLgwfj99/6/

+0

Vielen Dank für Ihre Antwort. Du hast meine Zeit gerettet. Ich lerne Staffelei von Ihren Beispielen hier ist einer von ihnen :) http://jsfiddle.net/lannymcnie/17xec9y5/9/ – fobus

+0

Awesome, froh, zu helfen! – Lanny