Link:INB Home|INB English| INB русский язык|INB العربية|INB Türkiye|INB فارسی|INB Español|INB Français|INB Português|INB Deutsch|INB 國語|INB 中文|INB 日本语|INB 한국어|INB ภาษาไทย|INB tiếng Việt||FL 教程Flash AS打造轉動3D小方塊視覺特效
INB 國語論壇
歡迎光臨(工業與草根研究員)對工業時代充滿了戰鬥精神,你和我都通過網絡空間與當地草根精神研究員來到瘋狂實驗室。家inbforum.com,永久名稱:tw-inbforum.forums2u.com
INB 國語論壇
歡迎光臨(工業與草根研究員)對工業時代充滿了戰鬥精神,你和我都通過網絡空間與當地草根精神研究員來到瘋狂實驗室。家inbforum.com,永久名稱:tw-inbforum.forums2u.com
INB 國語論壇

歡迎光臨(工業與草根研究員)對工業時代充滿了戰鬥精神,你和我都通過網絡空間與當地草根精神研究員來到瘋狂實驗室。家inbforum.com,永久名稱:tw-inbforum.forums2u.com


您沒有登錄。 請登錄註冊

《《《《《《《上一页INBforum   向下

上一页INBforum》》》》》》》上一篇主題 下一篇主題 向下  內容 [第1頁(共1頁)]

1FL 教程Flash AS打造轉動3D小方塊視覺特效 Empty FL 教程Flash AS打造轉動3D小方塊視覺特效 周四 3月 03, 2011 7:19 am

Admin

Admin
Admin
Flash教程,用Flash AS打造轉動3D小方塊視覺特效

演示:














其實也不算什么教程,只是代碼的解釋~我盡量寫的具體一些~

其實這個效果只有這些代碼而已~把代碼貼到第一幀就可以了~

好,下面開始:












stop();
//這個stop是讓FLASH播放在這一幀停下來,但對代碼的運行沒有影響~其實不用也沒關系
angle=-0.03;
dot_x=Stage.width/2;
dot_y=Stage.height/2;
p=70;
d=300;
//先初始化一下變量~angle是立方體每次轉過的角度,dot_x和dot_y定義了空間的原點,p是立方體邊長的一半,d是眼
//睛距離屏幕的像素
sx=new Array(-p,p,p,-p,-p,p,p,-p);
sy=new Array(-p,-p,-p,-p,p,p,p,p);
sz=new Array(-p,-p,p,p,-p,-p,p,p);
//這三個數組儲存了立方體八個點的實際坐標
tempx=new Array(8);
tempy=new Array(8);
//這兩個數組用來存儲立方體8個點在屏幕上的坐標
function r(){
for(i=0;i temp_x=sx*Math.cos(angle)-sz*Math.sin(angle);
temp_z=sx*Math.sin(angle) sz*Math.cos(angle);
//這個是用來計算立方體在轉動時八個點的坐標
sx=temp_x;
sy=sy;
sz=temp_z;
//要這樣賦值一下~否則立方體會越轉越長
tempx=(sx/(sz d))*d dot_x;
tempy=(sy/(sz d))*d dot_y;
//這個是用來將立方體的實際坐標轉化成屏幕的坐標,不懂的可以參考一下計算機圖形學的書

}
_root.createEmptyMovieClip("lines", 1);
lines.lineStyle(1, 11111111, 100);
lines.moveTo(tempx[0],tempy[0]);
lines.lineTo(tempx[1],tempy[1]);
lines.lineTo(tempx[2],tempy[2]);
lines.lineTo(tempx[3],tempy[3]);
lines.lineTo(tempx[0],tempy[0]);
lines.lineTo(tempx[4],tempy[4]);
lines.lineTo(tempx[5],tempy[5]);


lines.lineTo(tempx[6],tempy[6]);
lines.lineTo(tempx[7],tempy[7]);
lines.lineTo(tempx[4],tempy[4]);
lines.moveTo(tempx[1],tempy[1]);
lines.lineTo(tempx[5],tempy[5]);
lines.moveTo(tempx[2],tempy[2]);
lines.lineTo(tempx[6],tempy[6]);
lines.moveTo(tempx[3],tempy[3]);
lines.lineTo(tempx[7],tempy[7]);
_root.removeMovieClip("lines");
//上面的這一堆東西是用來把算出來的立方體的點用線連起來~其實可以優化一下的
updateAfterEvent();
//更新一下
}
setInterval(r,5);
//每隔5毫秒運行一次函數r

終于寫完了哈

" /> 寫的不好~請見諒`~再發一次效果,嘿嘿]

http://tw.inbforum.com

上一页INBforum   向下

上一页INBforum上一篇主題 下一篇主題 回頂端  內容 [第1頁(共1頁)]

這個論壇的權限:
無法 在這個版面回復文章

Copyright ©2009-2010 LTD Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

IT:SINGLESERVGoogle谷歌翻译TranslateFORUMSOFTLAYERGoogle谷歌广告联盟AdSenseAsia

 

Free forum | ©phpBB | 免費論壇互助中心 | 違法舉報 | Cookies | Latest discussions