問題描述:
在顯示一些類似於模態對話方塊的視窗時,我們可能需要遮蔽touch事件,不讓在彈出框下面的介面響應touch事件。
而彈出框上某些區域,或者按鈕可以響應touch事件。
解決方案:
1> 給彈出框新增帶吞噬能力的touch**功能。
[[cctouchdispatcher shareddispatcher] addtargeteddelegate:self priority:kccmenutouchpriority + 1 swallowstouches:yes];
注意:a>:**是會被retain的。所以使用完後務必要移出。
[[cctouchdispatcher shareddispatcher] removedelegate:self];
b>:priority其值越小,越是會優先響應touch事件。
這裡使用kccmenutouchpriority + 1 既該介面的響應優先順序比選單按鈕優先順序低。如果你希望又最高的優先順序最好使用int32_min+1
2> 實現**方法cctouchbegan:返回yes表示吞噬touch事件,則其他**都不收到該事件了。
- (bool)cctouchbegan:(uitouch *)touch withevent:(uievent *)event
如果需要在某個區域內可以響應touch事件,則可以新增如下**
- (bool)cctouchbegan:(uitouch *)touch withevent:(uievent *)event
cgrect arect = cgrectmake(50, 50, 50, 50);
cgpoint touchpoint = [touch locationinview:[touch view]];
touchpoint = [[ccdirectorshareddirector
] converttogl: touchpoint];
return !cgrectcontainspoint(arect, touchpoint);
}如果你希望除了選單按鈕以外的區域都不響應touch事件你也可以這樣寫:
- (bool)cctouchbegan:(uitouch *)touch
withevent:(uievent *)event
returnyes;}
cocos2d實現語音 Cocos2d 聲音API
param url 聲音路徑 cc.audioengine.playmusic url loop 停止背景 param releasedata 是否釋放聲音資料,預設為false cc.audioengine.stopmusic releasedata 暫停背景 cc.audioengine.pau...
Cocos2D研究院之初識Cocos2d(二)
在正式介紹cocos2d之前,我先囉嗦一下本人對這套引擎的看法。我認為coos2d最大的作用就是降低開發成本 貌似所有引擎都是這樣 對於研發部門來說,最大的成本就是時間,所以節省時間是降低成本最有效的方式,cocos2d幾乎封裝了所有開發ios遊戲需要的底層 使剛剛接觸oc的開發者也能很快的製作出效...
Cocos2D研究院之初識Cocos2d(二)
在正式介紹cocos2d之前,我先囉嗦一下本人對這套引擎的看法。我認為coos2d最大的作用就是降低開發成本 貌似所有引擎都是這樣 對於研發部門來說,最大的成本就是時間,所以節省時間是降低成本最有效的方式,cocos2d幾乎封裝了所有開發ios遊戲需要的底層 使剛剛接觸oc的開發者也能很快的製作出效...