2012-10-05 56 views
0

我在图层上有一些可拖动的KineticJS图像对象,我想在'touchend'事件上执行我自己的处理程序。听起来很简单!我已经添加了处理程序,我的每一个图像中的对象,例如:是否可以扩展KineticJS事件处理程序,特别是可拖动对象的_touchend()处理程序?

toyKinObj.on('touchend', openBoxContactEnded); 

但是因为“拖动”属性是对象的“真”,似乎KineticJS还呼吁其内置_touchend()处理程序除了我自己的处理程序代码。我的代码做的事情stage.clear()和e.shape.setDraggable(false),但这些对象的修改似乎干涉内置的_touchend()处理程序。根据我使用的代码版本,我看到KineticJS _handleEvent()处理程序失败,因为该事件不再存在,或者以后清除的图层上的图像会重新出现(后者可能会发生,因为我的KineticJS是试图重新绘制舞台/图层作为其事件处理的一部分,即使我想清除舞台)。

为了使问题更复杂一点,我似乎也在我自己的处理程序代码中调用了内置的KineticJS _touchend()处理程序代码,这肯定没有帮助。

所以我的问题是:而不是有我自己的处理程序,我可以扩展_touchend()处理程序来执行我的代码后主_touchend()代码?或者以某种方式确保我的代码在_touchend()完成之前不会执行?即控制处理程序执行的顺序?

我可以破解_touchend()在完成时分派用户定义的事件,触发自己的代码,或者我可以忘记KineticJS触摸事件并实现自己的拖放处理程序,但我确定我只是错过了一些东西,还有一种更简单的方法。

回答

相关问题