最近要做些電子書(shū),本來(lái)準(zhǔn)備去網(wǎng)上買(mǎi)現(xiàn)成的翻頁(yè)效果的組件,但一看報(bào)價(jià)嚇一跳,而且執(zhí)行效率也不高,一個(gè)叫AsFlipPage4.0的組件CPU占用率高居70%,喊價(jià)1000RMB,真是黑心商人。下載了幾個(gè)開(kāi)源的程序自己也看不懂。于是一咬牙自己做了一個(gè),并放上源程序。過(guò)兩星期再把變量接口做好,免費(fèi)發(fā)布。
設(shè)置遮罩和陰影之后的最終品:
主要原理:
- 將電子書(shū)分為3個(gè)內(nèi)容層,疊放順序如圖.第一層為當(dāng)前頁(yè)面層,是現(xiàn)在正在顯示的頁(yè)面;第二層是隨鼠標(biāo)拖拽時(shí)卷起的頁(yè)角,第三層是當(dāng)頁(yè)角卷起時(shí),露出下一頁(yè)的層。
- 設(shè)置遮罩:當(dāng)頁(yè)邊卷起時(shí),層1僅顯示四邊形FBDE內(nèi)部分,層2僅顯示ABCD部分,層3僅顯示BGHD部分.
- 旋轉(zhuǎn):層2內(nèi)的內(nèi)容要隨著鼠標(biāo)運(yùn)動(dòng)而不停變換傾斜角度,其角度始終與AC邊斜度一致.
- 翻頁(yè):當(dāng)頁(yè)面完全翻過(guò)時(shí),層1的當(dāng)前頁(yè)數(shù)=當(dāng)前頁(yè)數(shù)+1
程序的核心在于如何獲得四個(gè)點(diǎn)ABCD的坐標(biāo),我使用的是求垂直平分線的方法,既:點(diǎn)C是鼠標(biāo)位置,點(diǎn)H是頁(yè)角位置,BD既為此兩點(diǎn)間的垂直平分線.由已知的C,H坐標(biāo)求出直線BD的一次函數(shù)y=kx+b以后再求出其與FG,EH的切點(diǎn),既得點(diǎn)B,D坐標(biāo),點(diǎn)A是點(diǎn)G于直線BD的對(duì)稱點(diǎn),通過(guò)求點(diǎn)G對(duì)BD的對(duì)稱點(diǎn)既可得點(diǎn)A坐標(biāo).
出處:藍(lán)色理想
責(zé)任編輯:moby
上一頁(yè) 下一頁(yè) flash電子書(shū)鼠標(biāo)拖拽翻頁(yè)效果原理 [2]
◎進(jìn)入論壇Flash專(zhuān)欄版塊參加討論
|