Re: [問題] hitTest問題
看看這是不是你要的效果吧
線上觀看 http://0rz.tw/993Ga
原始檔案 http://0rz.tw/8e3H5
我用到的幾個重點如下:
0.我把所有code寫在影格上,然後各自MC上面的code都刪掉了
因為這樣看得比較清楚
1.將食物的名稱取為 b1, b2, b3
2.將感應區取名為 a1, a2, ..., a20
3.用for迴圈跑過每一個食物的onPress和onMouseUp來定義該handler
4.在上述的onMouseUp handler裡面再用for迴圈跑過每個感應區
如果該感應區與食物的hitTest()為true
則將該感應區的reference加入到一個叫做register的暫時陣列
之後選擇register中與食物距離最短的感應區
( 算距離的函式 distance(mc1, mc2):Number 定義在code的最下面)
最後將食物的位置設定為該感應區的位置
※其中在for迴圈裡面用到了"Associative Array"語法
簡單來說, this["abc"] 和 this.abc 是相同的意思
所以以下的code範例就是將 b1~b20 的_x值歸零
for(var i:Number = 0; i <= 20; i++) {
this["b" + i]._x = 0;
}
使用Associative Array語法應該就是你想要的解答
如此一來就不用同樣的code重複20次
畢竟,寫程式一大忌諱就是出現code duplication
同樣功能的code應該只出現一次才是最上策
--
CJ Cat = Croa'J Cat = Cockroach Cat = 西街凱特 = 蜚蠊貓 = 蟑螂貓
Gallery http://cjcat2266.deviantart.com
ptt2 Board CJWorkshop - 阿多比閃光(Adobe Flash)研討區
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 70.181.86.161
※ 編輯: cjcat2266 來自: 70.181.86.161 (02/13 04:40)
討論串 (同標題文章)
完整討論串 (本文為第 2 之 8 篇):
0
1
Flash 近期熱門文章
PTT數位生活區 即時熱門文章