屏蔽方法:
進入新的CCLayer時:
[[CCDirector sharedDirector].touchDispatcher addTargetedDelegate:self priority:kCCMenuHandlerPriority swallowsTouches:YES];
離開此CCLayer時調用
[[CCDirector sharedDirector].touchDispatcher removeDelegate:self];
重寫方法
- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event;
解釋:
由于CCMenu 按鈕接受按鍵的優先級為-128(值越小優先級越高),所有不論處在那一層都會接收到點擊
[[CCDirector sharedDirector].touchDispatcher addTargetedDelegate:self priority:kCCMenuHandlerPriority swallowsTouches:YES];
priority: 優先級 kCCMenuHandlerPriority(-128)
swallowsToucher: 是否吃掉按鈕不叫其他層再接收了 如果為NO其他層還是一樣會接收到Touch數據
注意離開此CCLayer時一定要調用
[[CCDirector sharedDirector].touchDispatcher removeDelegate:self];
否則下面層將不再接收按鍵
posted @
2012-10-20 12:07 CrackRen 閱讀(690) |
評論 (0) |
編輯 收藏
Class FileUtils
此類包含了一般的通用文件操作工具。
● 讀、寫文件
● 創建一個目錄,如果其上級的各級父目錄不存在,也會創建它們
● 拷貝文件和目錄
● 刪除文件和目錄
● 將URL轉換成文件
● 通過過濾器或者擴展名列出文件
● 比較文件內容
● 修改文件最后修改日期
● 計算校驗和
累了,去讀意優休息一下下,QQ空間,美文,非主流,網絡日記,搞笑短信,祝福短信,熱門短信,有意思啊
Class IOUtils
此類包含了一般的IO流操作工具。
● closeQuietly – 忽略 nulls和錯誤而關閉一個流
● toXxx/read – 這些類從一個流讀取數據
● write – 這些方法寫數據到一個流
● copy – 這些方法從一個流到另一個流拷貝數據
● contentEquals – 這些方法比較兩個流的數據
Class FilenameUtils
此類包含了文件和路徑的操作工具。
當你將在Windows下開發的Java程序轉移到Unix系統時,你可能遇到文件路徑的問題,這個類的目標幫你解決這個問題。注意: 你完全可以不用這個類,而使用JDK提供的兩個構造參數的File類,File(File,String)。
大多數方法識別兩個分隔符(/ 和 \), 和兩個前綴集合。
這個類獎一個文件名稱定義成六部分(例如 C:\dev\project\file.txt):
● 前綴 – C:\
● 路徑 – dev\project\
● 全路徑 – C:\dev\project\
● 文件名稱 – file.txt
● 基本名稱 – file
● 擴展名 – txt
這個類能夠處理以分隔符結尾的目錄文件。如果你忽略了最后一個分隔符,它也能識別其是文件還是目錄。這個類僅支持UNIX和Windows樣式的名稱,前綴匹配方式如下:
Windows:
a\b\c.txt –> "" –> 相對
\a\b\c.txt –> "\" –> 當前的絕對驅動器
C:a\b\c.txt –> "C:" –> 相對的驅動器
C:\a\b\c.txt –> "C:\" –> 絕對
\\server\a\b\c.txt –> "\\server\" –> UNC
Unix:
a/b/c.txt –> "" –> 相對
/a/b/c.txt –> "/" –> 絕對
~/a/b/c.txt –> "~/" –> 當前用戶
~ –> "~/" –> 當前用戶 (slash added)
~user/a/b/c.txt –> "~user/" –> 命名用戶
~user –> "~user/" –> 命名用戶 (slash added)
org.apache.commons.io.filefilter
此包中包含了大量的文件名稱過濾器。
DirectoryFilter 僅接受目錄
PrefixFileFilter 基于前綴
SuffixFileFilter 基于后綴
NameFileFilter 基于文件名稱
WildcardFileFilter 基于通配符
AgeFileFilter 基于最后修改時間
SizeFileFilter 基于文件尺寸
下載地址:
http://commons.apache.org/io/
posted @
2012-10-20 12:06 CrackRen 閱讀(284) |
評論 (0) |
編輯 收藏
當使用JSplitpane分隔面板時
可以通過 splitPaneMain.setOneTouchExpandable(true);
設置 oneTouchExpandable 屬性的值,要使 JSplitPane 在分隔條上提供一個 UI 小部件來快速展開/折疊分隔條
但是如果要初始化時默認就折疊一邊的話 網上搜索添加下面幾句就可以了,但是驗證了下只有在一邊沒加控件時才行
// Hide left or top
splitPaneMain.getLeftComponent().setMinimumSize(new Dimension());
splitPaneMain.setDividerLocation(0.0d);
// Hide right or bottom
splitPaneMain.getRightComponent().setMinimumSize(new Dimension());
splitPaneMain.setDividerLocation(1.0d);
posted @
2011-11-24 12:02 CrackRen 閱讀(458) |
評論 (0) |
編輯 收藏
寫個工具把不同文件夾下的文件拷貝到一個文件夾下去,碰到格問題,需要考慮到生成唯一文件名,想來想去還是使用MD5計算吧
import java.security.MessageDigest;
/**
*
* @author apple
*/
public class xMD5 {
public final static String MD5(String s) {
char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F'};
try {
byte[] strTemp = s.getBytes();
//使用MD5創建MessageDigest對象
MessageDigest mdTemp = MessageDigest.getInstance("MD5");
mdTemp.update(strTemp);
byte[] md = mdTemp.digest();
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte b = md[i];
//將沒個數(int)b進行雙字節加密
str[k++] = hexDigits[b >> 4 & 0xf];
str[k++] = hexDigits[b & 0xf];
}
return new String(str);
} catch (Exception e) {
return null;
}
}
}
posted @
2011-10-25 17:37 CrackRen 閱讀(194) |
評論 (0) |
編輯 收藏
// 觸摸屏
-(void) ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
for( UITouch *touch in touches ) {
CGPoint location = [touch locationInView: [touch view]];
location = [[CCDirector sharedDirector] convertToGL: location];
// 各種動作
// 瞬時動作
// 設置坐標
id action0 = [CCPlace actionWithPosition:ccp(240,160)];
// 隱藏
id action1 = [CCHide action];
// 顯示
id action2 = [CCShow action];
// 隱藏/顯示
id action3 = [CCToggleVisibility action];
// 延時動作
// 移動
id action4 = [CCMoveTo actionWithDuration:2 position:ccp(0,0)];
id action5 = [CCMoveBy actionWithDuration:2 position:ccp(100,100)];
// 彈跳
id action6 = [CCJumpTo actionWithDuration:2 position:ccp(0,200) height:30 jumps:5];
id action7 = [CCJumpBy actionWithDuration:2 position:ccp(100, 0) height:30 jumps:5];
// 貝塞爾移動
ccBezierConfig bezier;
bezier.controlPoint_1 = ccp(0, 0);
bezier.controlPoint_2 = ccp(100, 300);
bezier.endPosition = ccp(0,100);
id action8 = [CCBezierTo actionWithDuration:3 bezier:bezier];
id action9 = [CCBezierBy actionWithDuration:3 bezier:bezier];
// 縮放
id action10 = [CCScaleTo actionWithDuration:2 scale:4];
id action11 = [CCScaleBy actionWithDuration:2 scale:0.5];
// 旋轉
id action12 = [CCRotateTo actionWithDuration:2 angle:180];
id action13 = [CCRotateBy actionWithDuration:2 angle:-180];
// 閃爍
id action14 = [CCBlink actionWithDuration:3 blinks:5];
// 色調變化
id action15 = [CCTintTo actionWithDuration:2 red:255 green:0 blue:0];
id action16 = [CCTintBy actionWithDuration:0.5 red:0 green:255 blue:255];
// 淡化到/淡入/淡出
id action17 = [CCFadeTo actionWithDuration: 1 opacity:80];
id action18 = [CCFadeIn actionWithDuration:1.0f];
id action19 = [CCFadeOut actionWithDuration:1.0f];
// 動畫順序播放
CCAnimation *animation = [CCAnimation animation];
[animation setDelay:2];
// 這里就添加兩幀,需要自己添加
[animation addFrameWithTexture:sprTest.texture rect:CGRectMake(0, 0, 44, 34)];
[animation addFrameWithTexture:sprTest.texture rect:CGRectMake(0, 34, 44, 34)];
id action20 = [CCAnimate actionWithAnimation: animation];
// 組合動作
// 動畫序列
id action21 = [CCSequence actions:action19, action18, nil];
// 重復動作
id action22 = [CCRepeat actionWithAction:action21 times:10];
// 延時動作
id action23 = [CCDelayTime actionWithDuration:1];
// 同時動作
id action24 = [CCSpawn actions:action0, action4, action21, nil];
// 無限循環動作
id action25 = [CCRepeatForever actionWithAction:action21];
// 擴展動作
// 回調動作
id acf0 = [CCCallFunc actionWithTarget:self selector:@selector(CallBack1)];
// 回調動作,傳遞動畫自身指針
id acf1 = [CCCallFuncN actionWithTarget:self selector:@selector(CallBack2:)];
// 回調動作,傳遞動畫自身指針已經一個參數
id acf2 = [CCCallFuncND actionWithTarget:self selector:@selector(CallBack3:data:) data:(void*)2];
id action26 = [CCSequence actions:action19, action18, acf0, action23, action0, nil];
// 反轉動作,只能用在有方向有順序的動作上
id action27 = [action9 reverse];
// 速度變化
//id ac = [CCSequence actions:action9,action27,nil];
id actiontest = [CCMoveBy actionWithDuration:0.5 position:ccp(200,0)];
id ac = [CCSequence actions:actiontest,actiontest, nil];
// 漸快
id action28 = [CCEaseIn actionWithAction:ac rate:3];
// 漸慢
id action29 = [CCEaseOut actionWithAction:ac rate:3];
// 先漸快再漸慢
id action30 = [CCEaseInOut actionWithAction:ac rate:3];
// 正弦波移動
id action31 = [CCEaseSineIn actionWithAction:ac];
id action32 = [CCEaseSineOut actionWithAction:ac];
id action33 = [CCEaseSineInOut actionWithAction:ac];
// 由極慢至極快
id action34 = [CCEaseExponentialIn actionWithAction:ac];
// 由極快到極慢
id action35 = [CCEaseExponentialOut actionWithAction:ac];
// 由極慢至極快 再由極快到慢
id action36 = [CCEaseExponentialInOut actionWithAction:ac];
// 手動設定速度,可通過SetSpeed不斷調整
id action37 = [CCSpeed actionWithAction:ac speed:(CCRANDOM_0_1() * 5)];
[sprTest runAction:action37];
}
}
// 回調函數1
- (void) CallBack1
{
[sprTest runAction:[CCTintBy actionWithDuration:2 red:255 green:0 blue:255]];
}
// 回調函數2
- (void) CallBack2:(id)sender
{
[sender runAction:[CCTintBy actionWithDuration:1 red:255 green:0 blue:255]];
}
// 回調函數3
-(void) CallBack3:(id)sender data:(void*)data
{
[sender runAction:[CCTintBy actionWithDuration:(NSInteger)data red:255 green:0 blue:255]];
}
posted @
2011-10-14 13:18 CrackRen 閱讀(954) |
評論 (0) |
編輯 收藏
//
-(void) startMenu:(id) sender
{
CCScene* scenec = [CCTestScene scene];
//部落格------
//CCTransitionTurnOffTiles *transitionScene = [CCTransitionTurnOffTiles transitionWithDuration:3 scene:scenec];
//近遠-遠近-----
//CCTransitionShrinkGrow *transitionScene = [CCTransitionShrinkGrow transitionWithDuration:3 scene:scenec];
//另一個layout左側進入(視覺感覺是屏幕右移)
//CCTransitionSlideInL *transitionScene = [CCTransitionSlideInL transitionWithDuration:3 scene:scenec];
//另一個layout右側進入(視覺感覺是屏幕左移)
//CCTransitionSlideInR *transitionScene = [CCTransitionSlideInR transitionWithDuration:3 scene:scenec];
//另一個layout上側進入(視覺感覺是屏幕下移)
//CCTransitionSlideInT *transitionScene = [CCTransitionSlideInT transitionWithDuration:3 scene:scenec];
//另一個layout下側進入(視覺感覺是屏幕上移)
//CCTransitionSlideInB *transitionScene = [CCTransitionSlideInB transitionWithDuration:3 scene:scenec];
//當前屏幕被分為3列,兩則下移,中間上移
//CCTransitionSplitCols *transitionScene = [CCTransitionSplitCols transitionWithDuration:3 scene:scenec];
//當前屏幕被分為3列,兩則左移,中間右移
//CCTransitionSplitRows *transitionScene = [CCTransitionSplitRows transitionWithDuration:3 scene:scenec];
//扇形轉換-----
//CCTransitionRadialCW *transitionScene = [CCTransitionRadialCW transitionWithDuration:3 scene:scenec];
//平面旋轉-----
//CCTransitionRotoZoom *transitionScene = [CCTransitionRotoZoom transitionWithDuration:3 scene:scenec];
//近-遠-跳動------
//CCTransitionJumpZoom *transitionScene = [CCTransitionJumpZoom transitionWithDuration:3 scene:scenec];
//立體反轉(X軸)--(還有種從近到遠,從遠到近的感覺)--------
//CCTransitionZoomFlipX *transitionScene = [CCTransitionZoomFlipX transitionWithDuration:3 scene:scenec];
//立體反轉(Y軸)-(還有種從近到遠,從遠到近的感覺)-------
//CCTransitionZoomFlipY *transitionScene = [CCTransitionZoomFlipY transitionWithDuration:3 scene:scenec];
//立體反轉(X,Y軸)---(還有種從近到遠,從遠到近的感覺)-----
//CCTransitionZoomFlipAngular *transitionScene = [CCTransitionZoomFlipAngular transitionWithDuration:3 scene:scenec];
//另外一個layout左側進入覆蓋當前layout
//CCTransitionMoveInL *transitionScene = [CCTransitionMoveInL transitionWithDuration:3 scene:scenec];
//另外一個layout右側進入覆蓋當前layout
//CCTransitionMoveInR *transitionScene = [CCTransitionMoveInR transitionWithDuration:3 scene:scenec];
//另外一個layout上側進入覆蓋當前layout
//CCTransitionMoveInT *transitionScene = [CCTransitionMoveInT transitionWithDuration:3 scene:scenec];
//另外一個layout下側進入覆蓋當前layout
//CCTransitionMoveInB *transitionScene = [CCTransitionMoveInB transitionWithDuration:3 scene:scenec];
//立體反轉(X軸)--2D平面反轉,沒有遠近感
//CCTransitionFlipX *transitionScene = [CCTransitionFlipX transitionWithDuration:3 scene:scenec];
//立體反轉(Y軸)--2D平面反轉,沒有遠近感
//CCTransitionFlipY *transitionScene = [CCTransitionFlipY transitionWithDuration:3 scene:scenec];
//立體反轉(X,Y軸)--2D平面反轉,沒有遠近感
//CCTransitionFlipAngular *transitionScene = [CCTransitionFlipAngular transitionWithDuration:3 scene:scenec];
//實體-透明-實體(默認無顏色,可以附帶顏色)
//CCTransitionFade* transitionScene = [CCTransitionFade transitionWithDuration:3 scene:scenec withColor:ccWHITE];
//另外一個直接漸變覆蓋當前layout
//CCTransitionCrossFade *transitionScene = [CCTransitionCrossFade transitionWithDuration:3 scene:scenec];
//移動(方格狀)部落格,從左下往右上
//CCTransitionFadeTR *transitionScene = [CCTransitionFadeTR transitionWithDuration:3 scene:scenec];
//移動(方格狀)部落格,從右上往左下
CCTransitionFadeBL *transitionScene = [CCTransitionFadeBL transitionWithDuration:3 scene:scenec];
//移動(長矩形,寬度是屏幕寬)部落格,從下往上
//CCTransitionFadeUp *transitionScene = [CCTransitionFadeUp transitionWithDuration:3 scene:scenec];
//移動(長矩形,寬度是屏幕寬)部落格,從上往下
//CCTransitionFadeDown *transitionScene = [CCTransitionFadeDown transitionWithDuration:3 scene:scenec];
[[CCDirector sharedDirector] replaceScene: transitionScene];
}
posted @
2011-10-11 13:57 CrackRen 閱讀(281) |
評論 (0) |
編輯 收藏
BOOL Download( CString szURL, CString szDstFile )
{
BOOL res = false;
CInternetSession Session;
CHttpFile *pHttpFile = NULL;
try{
pHttpFile = (CHttpFile*)Session.OpenURL(szURL);
}catch(CInternetException * m_pException){
pHttpFile = NULL;
m_pException->m_dwError;
m_pException->Delete();
Session.Close();
res = false;
}
CString strLine;
CFile xmlFile;
BOOL bResult = xmlFile.Open(szDstFile, CFile::modeCreate | CFile::modeWrite);
if(pHttpFile != NULL && bResult)
{
while(pHttpFile->ReadString(strLine) != NULL)
{
xmlFile.Write(strLine, strLine.GetLength());
}
xmlFile.Close();
res = true;
}
else
{
res = false;
}
Session.Close();
pHttpFile->Close();
delete pHttpFile;
pHttpFile = NULL;
return res;
}
posted @
2011-08-31 16:35 CrackRen 閱讀(145) |
評論 (0) |
編輯 收藏
函數原型:
BOOL AfxExtractSubString(CString& rString, LPCTSTR lpszFullString, int iSubString, TCHAR chSep = '\n')
參數說明:
rString 保存輸出的子字符串
lpszFullString 待分割的字符串
iSubString 提取的子字符串的序號,從0開始。假如你想提取第3段,該參數就輸入2
chSep 用于分割的字符,默認的是'\n'
返回值:分割成功,就返回TRUE;iSubString越界,則返回FALSE
舉例說明:
CString szGet;
CString szText = "var hq_str_sh600736=\"蘇州高新,5.33,5.32,5.70,5.85,5.32,5.71,5.72,56939555,323766177,92561,5.71,121300,5.70,57200,5.69,34600,5.68,18600,5.67,130327,5.72,177801,5.73,40999,5.74,194908,5.75,69600,5.76,2011-08-12,15:03:07\";";
AfxExtractSubString(szGet, szText, 1, ','); //取回 5.33
AfxExtractSubString(szGet, szText, 2, ','); //取回 5.32
AfxExtractSubString(szGet, szText, 3, ','); //取回 5.70
//想要取回蘇州高新
AfxExtractSubString(szGet, szText, 0, ','); //先取回var hq_str_sh600736="蘇州高新
AfxExtractSubString(szGet, szGet, 1, '\"'); //取回 蘇州高新
注意:用于分割的只能是字符,不能是字符串。
多個字符使用_tcstok函數,另外可以使用find函數自己寫.
posted @
2011-08-13 21:18 CrackRen 閱讀(648) |
評論 (0) |
編輯 收藏
計算某天星期幾,最出名的算法就是蔡勒公式:
—— 蔡勒(Zeller)公式
歷史上的某一天是星期幾?未來的某一天是星期幾?關于這個問題,有很多計算公式(兩個通用計算公式和一些分段計算公式),其中最著名的是蔡勒(Zeller)公式。即w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
公式中的符號含義如下,w:星期;c:世紀-1;y:年(兩位數);m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月來計算,比如2003年1月1日要看作2002年的13月1日來計算);d:日;[ ]代表取整,即只要整數部分。(C是世紀數減一,y是年份后兩位,M是月份,d是日數。1月和2月要按上一年的13月和 14月來算,這時C和y均按上一年取值。)
算出來的W除以7,余數是幾就是星期幾。如果余數是0,則為星期日。
以2049年10月1日(100周年國慶)為例,用蔡勒(Zeller)公式進行計算,過程如下:
蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
=49+[49/4]+[20/4]-2×20+[26× (10+1)/10]+1-1
=49+[12.25]+5-40+[28.6]
=49+12+5-40+28
=54 (除以7余5)
即2049年10月1日(100周年國慶)是星期5。
想知道更詳細的到網上查下.
實現的算法函數:
/************************************************************************
* 返回值 0~6(星期日~星期六)
************************************************************************/
int GetWeek(int nYear, int nMouth, int nDay)
{
int week;
int c = nYear/100;
if(nMouth<3)
{
nYear -= 1;
nMouth += 12;
}
week = ((nYear%100)+((nYear%100)/4)+(c/4)-2*c+(26*(nMouth+1)/10)+nDay-1)%7;
if(week<0) week += 7;
return week;
}
注意:如果結果為負數的時候要加個7。
posted @
2011-07-29 17:09 CrackRen 閱讀(186) |
評論 (0) |
編輯 收藏
CString ConverToUTF8(CString szText)
{
WCHAR *chBuf;
char * p;
int iLen;
iLen = MultiByteToWideChar(CP_ACP, 0, szText,-1 , NULL, 0);
chBuf = new WCHAR[iLen+1];
ZeroMemory(chBuf, iLen * sizeof(WCHAR));
iLen =MultiByteToWideChar(CP_ACP, 0, szText, -1, chBuf, iLen+1);
iLen = WideCharToMultiByte(CP_UTF8, 0, chBuf,-1 , NULL, 0,NULL,NULL);
p = new CHAR[iLen+1];
ZeroMemory(p, iLen * sizeof(CHAR));
iLen =WideCharToMultiByte(CP_UTF8, 0, chBuf, -1, p, iLen+1,NULL,NULL);
delete []chBuf;
CString re(p);
return re;
}
CString UTF8ToUnicode(CString szText)
{
int len = 0;
len = szText.GetLength();
int unicodeLen = ::MultiByteToWideChar( CP_UTF8,0,szText.GetBuffer(len),-1,NULL,0 );
wchar_t * pUnicode;
pUnicode = new wchar_t[unicodeLen+1];
memset(pUnicode,0,(unicodeLen+1)*sizeof(wchar_t));
::MultiByteToWideChar( CP_UTF8,0,szText.GetBuffer(len),-1,(LPWSTR)pUnicode,unicodeLen );
CString rt = pUnicode;
delete pUnicode;
return rt;
}
posted @
2011-02-21 14:48 CrackRen 閱讀(235) |
評論 (0) |
編輯 收藏