2012-10-05 98 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觸摸事件並實現自己的拖放處理程序,但我確定我只是錯過了一些東西,還有一種更簡單的方法。

回答

相關問題