Ich habe zwei Animationen auf einer deklariert. Die erste ist aktiviert, um auf click
die zweite wird ausgelöst durch eine andere Javascript-Datei mit dem benutzerdefinierten 'schließen' Ereignis.Afrikanische Animation wird durch falsches Ereignis ausgelöst
definiert ich mein Himmel, wie folgt:
<a-sky mixin="sky" id="thesky" src="puydesancy.jpg" scale="1 1 -1" radius="1" >
<a-animation attribute="scale" direction="alternate" begin="click" dur="1000" easing="linear" from="1 1 -1" to="10 10 -10"></a-animation>
<a-animation attribute="scale" direction="alternate" begin="close" dur="1000" easing="linear" from="10 10 -10" to="1 1 -1"></a-animation>
</a-sky>
//This is my click handler which calls Closer()
(function() {
var skies = document.querySelectorAll('#thesky');
var i;
for (i = 0; i < skies.length; ++i) {
skies[i].addEventListener('click', function() {
console.log('click', this);
Closer();
})
}
})();
//This is in the return function of Closer()
var sphereElement = document.getElementById("thesky");
sphereElement.emit('close');
Alles läuft beim ersten Mal richtig durch, ich auf den Himmel Objekt klicken und es skaliert in der Größe. Die Closer-Methode wartet auf eine Verzögerung und verkleinert dann den Himmel wieder auf seine normale Größe. Wenn ich jedoch das zweite Mal auf das Himmelsobjekt klicke, wird die "Schließen" -Animation anstelle der "Klick" -Animation abgespielt und nach Ablauf der Verzögerung wird anstelle des "Schließens" die "Klick" -Animation abgespielt. Was bewirkt, dass diese beiden Animationen durch die falschen Ereignisse beim zweiten Passthrough ausgelöst werden.
Dank Kevin, es stellte sich heraus, dass das Problem mit der Einstellung der "direction =" alternative "' in Verbindung stand, sobald ich den Wert auf "vorwärts" geschaltet hatte, funktionierte es wie erwartet. – Devin