a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 辦公 > Flash > 正文

用AS控制MC的傾斜屬性的代碼

2024-09-12 17:50:49
字體:
供稿:網(wǎng)友
在FLASH里,MC的傾斜屬性可以通過手動的辦法來設(shè)定.在FLASH里,傾斜是實現(xiàn)3D效果的重要方面.
但是AS里頭就沒有傾斜屬性的代碼,盡管現(xiàn)在模擬3D的代碼已經(jīng)有很多人做出來,但是目前一般都是局限在坐標(biāo)點的模擬方面.對于物體,位圖的簡單3D效果,哪怕就一個傾斜,AS都還沒能做到.
為了解決這個問題(這問題,經(jīng)典里一位用戶也曾問過),本人花了近一周的時間來研究:
廢話少說,還是轉(zhuǎn)入正題吧.
1一個簡單的試驗:
在FLASH里,畫一個矩形(不要轉(zhuǎn)成元件),然后把該矩形稍作旋轉(zhuǎn).
接著把轉(zhuǎn)了的矩形在水平方向做一下縮放,你就看到矩行實際上是傾斜了.
因此,利用AS里的_XSCALE和_ROTATION屬性就可以讓MC動態(tài)地傾斜了.

2把該試驗應(yīng)用到AS中
不妨寫個代碼試試看:
制作一個MC(越復(fù)雜可能效果會越明顯)
往MC里寫代碼:
onClipEvent(enterFrame){
  _rotation=30;
  _xscale=30;
}
測試一下,沒有傾斜效果,仔細(xì)看一下會發(fā)現(xiàn)在MC旋轉(zhuǎn)以后,縮放的坐標(biāo)也跟著旋轉(zhuǎn).
可惜啊!
難道就沒有辦法了嗎?答案是否定的!
既然MC旋轉(zhuǎn)以后,縮放坐標(biāo)跟著旋轉(zhuǎn),那么,我們就把旋轉(zhuǎn)了的MC再轉(zhuǎn)為MC,那么不就有兩個坐標(biāo)系了嗎?不就可以達(dá)到小測試的效果嗎?
筆者也許比較笨,這個小問題也給卡住了3分鐘.
言歸正傳,我們繼續(xù)說吧.
把剛才的MC的代碼清空,命名為myMC,然后把他轉(zhuǎn)換為影片剪輯.
往轉(zhuǎn)換了的影片剪輯輸入代碼:
onClipEvent(load){
   myMC._rotation=30
  _xscale=30
}
再測試一下,傾斜效果出來了!
筆者以為這樣就可以大功告成,想自己動態(tài)設(shè)置MC傾斜30度,卻發(fā)現(xiàn),上述的代碼雖然是傾斜了,但是傾斜并不是30度,上面兩個屬性跟傾斜屬性還存在著對筆者來說是比較復(fù)雜的數(shù)學(xué)關(guān)系.
筆者花了近一周的時間研究這種關(guān)系,盡管有點暈,但最終還是給弄出來了.
把上面的代碼替換為:
onClipEvent (load) {
       function setSkewx(anglex) {
              var angx = anglex%360;
              var tx = 1/Math.tan(angx*(Math.PI/180));
              var alfax = (Math.tan(angx*(Math.PI/180)) == 0) ? Math.PI/2 : (Math.asin((Math.sqrt(tx*tx+1)-1)/tx));
              myMC._rotation = -45;
              _xscale = 100*Math.sin(alfax);
              myMC._xscale = 100/Math.sqrt(1/2*(Math.pow(Math.sin(alfax), 2)+1));
              myMC._yscale = 100/Math.sqrt(1/2*(Math.pow(Math.sin(alfax), 2)+1));
              _rotation = Math.atan(1/Math.sin(alfax))/(Math.PI/180);
              if (Math.cos(angx*(Math.PI/180))<0) {
                     myMC._yscale *= -1;
              }
       }
       function setSkew(anglex, angley) {
              setSkewx(anglex-angley);
              _rotation += angley;
       }
}
onClipEvent (enterFrame) {
       an = (an+1)%360;
       setSkew(an,0)
}
就看到效果了.
從前面的簡單測試,到寫成這段代碼,可謂艱辛至極.但不管怎樣也好,代碼寫成了,也希望能讓大家從中學(xué)到一些東西.
至于從簡單的測試代碼到上面的代碼是怎么推出來的,里頭的語句意義何在,我將在這段時間給大家作出解釋.
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 天天干视频 | 免费观看成人羞羞视频网站观看 | 91精品国产综合久久久久久丝袜 | 国产精品美女久久久久久免费 | 天堂在线视频免费 | 国产精品视频一区二区三区, | 精品久久久久久久 | 亚洲aaaaaa特级 | 亚洲精品一区久久久久久 | 精国产品一区二区三区 | 免费看一区二区三区 | 国产自产精品视频 | 在线免费观看毛片 | 亚洲一级电影 | 欧美狠狠操 | 狠狠干av | 久久久久久久久久久免费av | 日本福利视频网 | 久久免费在线观看 | 91精品久久久久 | 伊人操操 | 最黄的网站 | 亚洲一区免费视频 | 看亚洲a级一级毛片 | 免费不卡视频 | 性培育学校羞耻椅子调教h 另类中文字幕 | av黄色在线 | www狠狠干 | 日本精品视频在线 | 国产精品一区亚洲二区日本三区 | 国产真实乱全部视频 | 久久免费国产精品 | www日本com| 久久国产欧美日韩精品 | 精品久久久久久久人人人人传媒 | 极品在线 | 能免费看的av | 久草电影网 | 三级欧美在线观看 | 亚洲电影一区二区 | 国产九九九 |