作者dryman (dryman)
看板MacDev
標題Re: [問題] NSView製作動畫
時間Sun Feb 22 14:55:43 2009
我試了幾個程式碼:
發現它的確不會重新init,但是不知道為什麼經過IBAction設過的bool
會重新變成0
我在IBAction的最尾巴這樣寫:
printf("\n%d",startOrNot);
startOrNot=YES;
printf("%d",startOrNot);
然後在drawRect裡這樣寫:
printf("%d",startOrNot);
if(startOrNot){
...畫該畫的東西
}
猜猜看會有什麼結果?
0000000000000000000*n <-這是跑drawRect的,目前為止正常
按下IBAction的按鈕後
0100000000000000000000000 第一次按
000000000000000000...
1100000000 第二次
1100000000000000000... 第三次
每次再按按鈕時它顯示startOrNot已經是YES了
但drawRect還是讀到0
真的很詭異= =|||
我也有把printf("%d",startOrNot);放入init裡看看會怎樣
出來的結果很有趣:它會印兩次(都是0)
但之後就不會印了
所以至少它應該是沒有再次init才對
至於NSAnimation
http://mattgemmell.com/2006/11/08/nsviewanimation-wtf
這人寫了一個測試的程式
NSAnimation的確是比NSViewAnimation這個package快
至於和NSView + NSTimer的動畫比起來我就不知道了...
NSAnimation裡面有內建的timer和讓動畫平滑化的設計
不過這些我都還不知道該怎麼用
因為NSAnimation的程式碼比NSView的複雜好多...
要花些時間消化
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.224.55.115
1F:→ dryman:Anyway, 還是謝謝yllan大的教學,原本它根本動不了 02/22 14:56
2F:→ dryman:現在雖然沒辦法按按鈕後動,至少會動... 02/22 14:56
3F:→ dryman:初始的時候讓它動可以一直動 02/22 14:57