Fixed taphandler problems.

This commit is contained in:
2019-10-02 10:33:57 +02:00
parent e7c05a8387
commit cd140a73f6
5 changed files with 458 additions and 232 deletions
+1 -1
View File
@@ -155,7 +155,7 @@ export default class CardWrapper extends Object {
return true
}
if (this.tapNodes.has(node)) {
handler = this.tapNodes.get(node)
let handler = this.tapNodes.get(node)
handler(event, node)
return true
}
+8 -4
View File
@@ -2,6 +2,7 @@
/* global PDFJS Power1 */
import { getId } from './utils.js'
import { DOMScatter } from './scatter.js'
import CardWrapper from './card/wrapper.js'
export class CardLoader {
constructor(
@@ -403,20 +404,23 @@ export class DOMFlippable {
this.backBtn = element.querySelector('.backBtn')
this.closeBtn = element.querySelector('.closeBtn')
/* Buttons are not guaranteed to exist. */
if (scatter.tapDelegate == null) {
let tapDelegate = new CardWrapper(element)
scatter.tapDelegate = tapDelegate
}
if (this.infoBtn) {
scatter.addTapListener(this.infoBtn, event => {
scatter.tapDelegate.onTap(this.infoBtn, event => {
this.flip.start()
})
this.enable(this.infoBtn)
}
if (this.backBtn) {
scatter.addTapListener(this.backBtn, event => {
scatter.tapDelegate.onTap(this.backBtn, event => {
this.start()
})
}
if (this.closeBtn) {
scatter.addTapListener(this.closeBtn, event => {
scatter.tapDelegate.onTap(this.closeBtn, event => {
this.close()
})
this.enable(this.closeBtn)
+12 -9
View File
@@ -774,12 +774,13 @@ export class AbstractScatter extends Throwable {
}
onEnd(event, interaction) {
//console.log("Scatter.onEnd", this.dragging)
console.log("Scatter.onEnd", this.dragging)
if (interaction.isFinished()) {
this.endGesture(interaction)
this.dragging = false
for (let key of interaction.ended.keys()) {
if (interaction.isTap(key)) {
console.log("Scatter.isTap")
let point = interaction.ended.get(key)
this.onTap(event, interaction, point)
}
@@ -804,7 +805,16 @@ export class AbstractScatter extends Throwable {
}
}
onTap(event, interaction, point) {}
//onTap(event, interaction, point) {}
onTap(event, interaction, point) {
console.log("AbstractScatter.onTap", this.tapDelegate, interaction)
if (this.tapDelegate) {
Events.stop(event)
this.tapDelegate.tap(event, 'scatter')
}
}
onDragUpdate(delta) {
if (this.onTransform != null) {
@@ -1351,13 +1361,6 @@ export class DOMScatter extends AbstractScatter {
TweenLite.set(this.element, { zIndex: DOMScatter.zIndex++ })
}
onTap(event, interaction, point) {
if (this.tapDelegate) {
Events.stop(event)
this.tapDelegate.tap(event, 'scatter')
}
}
isDescendant(parent, child) {
let node = child.parentNode
while (node != null) {