2017-07-03 4 views
0

Ich habe ein kleines Problem. Ich benutze Staffelei, um eine Form in eine Leinwand zu erstellen.EaselJS, Drag & Drop in den Container, aber klicken Sie auf Kind Container

Ich habe Container Klasse zu Lagerkreis Form mit Text auf Lager. Diese Klasse enthält eine Klickfunktion für den Container.

Ich habe eine andere Container-Klasse mit einer rechteckigen Form und einem anderen Text erstellt.

auf diesem Container habe ich die Drag & Drop aktivieren, um diese in den Canvas zu verschieben. das funktioniert gut, aber wenn ich die Container (Kreisform) als Kind dieses Containers hinzufüge, wird die Click-Funktion vom Container mit rechteckiger Form aufgerufen. ich weiß, dass das so funktioniert, weil ich die mousekinder auf falsch gesetzt habe.

Wenn ich diese Eigenschaften ändere, wenn ich den übergeordneten Container verschiebe, bewegen sich alle Kinder darin nicht mit.

Ich möchte die Click-Funktion Eltern, um die Klick-Funktion meines Kreises Container umleiten.

in der Tat, ich brauche nur eine Form beweglich zu erstellen, mit anderen Formen in ihnen anklickbar.

thx für Ihre Hilfe, wenn Sie meinen Code benötigen, kann ich dies hier setzen

+0

Dies ergibt keinen Sinn. Sie können einen Container nicht verschieben, ohne seine untergeordneten Elemente zu verschieben. Das ist buchstäblich was ein Container ist ... Es ist möglich, dass Sie den Inhalt Ihres Containers (einen Hintergrund?) Verschieben und davon ausgehen, dass der Container selbst ist? Kannst du etwas Code oder eine Demo veröffentlichen? – Lanny

Antwort

0

Sie können für die pressmove des Behälters hören, und die Mausereignisse auf die Kinder, da Ereignisse in EaselJS Blase. Hier

ist ein Beispiel: http://jsfiddle.net/8L9wye4n/1/

// Listen for children events: 
s.on("click", function(event) { event.target.scaleX = event.target.scaleY = event.target.scaleX+0.1 }); 

// Listen for container drag/drop 
c.on("pressmove", function(event) { 
    c.x = stage.mouseX; 
    c.y = stage.mouseY; 
}); 

Hoffnung, das hilft.

Verwandte Themen