天天看點

【COCOS2D-X 備注篇】cocos2dx 擷取手機截屏等意外取消觸屏事件的處理方法!

最近有童鞋問我如何擷取到iphone手機截屏的事件,是以本篇就簡單的聊下這種問題的處理辦法。

在cocos2dx引擎中,我們能在AppDelegate中擷取到,使用者将應用切入背景,以及重新傳回應用的事件函數。那麼對應的,cocos2dx也在引擎中給予我們截取螢幕等這種隻能手機應有事件的處理函數。

其實大家應該都很熟悉截取使用者觸屏的函數,如下:

1

2

3

4

<code>// default implements are used to call script callback if exist</code>

<code>virtual</code><code>bool</code><code>ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);</code>

<code>virtual</code><code>void</code><code>ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);</code>

<code>virtual</code><code>void</code><code>ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);</code>

如上三個函數:

1.touchBegan:擷取使用者剛觸屏事件的函數。

2.touchMoved:擷取使用者滑動螢幕事件的函數。

3.touchEnded:擷取使用者離開螢幕事件的函數。

其實細節的童鞋,或者不了解的童鞋可能都看到了,其實觸屏事件還有一個函數可繼承重寫:

     此函數 touchCancelled 的作用是擷取意外事件造成觸屏事件取消的函數。其實這個函數不僅能擷取截屏等意外造成觸屏取消的事件之外,還能有效的避免多觸點之間造成程式異常的問題。

             另外Himi建議重寫觸屏函數時,務必重寫 ccTouchCancelled 函數,以避免意外事件的發生,造成程式崩潰!

本文轉自 xiaominghimi 51CTO部落格,原文連結:http://blog.51cto.com/xiaominghimi/1343348,如需轉載請自行聯系原作者

繼續閱讀