Re: [問題] 一次讓很多物件動的方式?

看板Flash作者 (喵)時間19年前 (2007/01/01 19:28), 編輯推噓3(306)
留言9則, 4人參與, 最新討論串3/3 (看更多)
※ 引述《aquarianboy (一路好走..)》之銘言: : ※ 引述《ooic (誠徵萬年女友中)》之銘言: : : ex moon1 ~ moon8 : : 用for來讓8個一起播放...有辦法嗎? : : 像 : : for (i=1;i<9;i++){mooni.gotoandplay(i);} : : 這種感覺 : : @@" : for (var i:Number = 1; i<=8; i++) { : this["moon"+i].gotoAndPlay(1); : } : 推 ooic:thx thx @@" 01/01 01:41 : 推 ooic:嗯...沒用啊...囧 01/01 14:16 其實a大所寫的是正確的 一定可以用 如果不能用 像ooic這樣 應該就是路徑上的問題 使用this["moon"+i]的時候 那個this指的是現在程式碼所在的元件 我在猜測ooic應該是按下一個按鈕後 叫她們八個都動作吧 所以在for這段之前應該會有一個xxx_btn.onPress=function(){ 因此接下來這個大括號底下的this都是指xxx_btn 但是moon1~moon8或許是放在_root底下 而xxx_btn也是放在_root底下 這樣子就當然不會動作了 因為xxx_btn底下並沒有moon1~moon8 所以以我舉的例子的寫法 這個this就要改成this._parent就是讓目標指回去_root(上一層) 若ooic您的元件配置不是這樣子可能就是不同的寫法 為什麼我說a大講的一定可以用 因為我看"大師談FLASH遊戲的設計與製作"裡 也有看到這種this[]的寫法 當時我很驚喜 因為我從來不知道這種寫法 忘記eval是哪裡學到的 昨天開啟flash查了一下eval的說明檔 真的有這種替代寫法 而且是比較好用的(所以我才驚喜) 剛看到ooic這個問題也直覺可以用eval解決 但想試試看this[]的用法 我剛測試了一下也的確沒錯 這寫法是行得通的 只是路徑要處理一下 (其實eval也要指定路徑) 我給你我的測試檔 你再研究看看 :) http://163.19.207.214/flash/test2.fla 不過這種寫法不能直接用_root["moon"+i]耶? 剛測試好像不行.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.141.15.249

01/01 20:04, , 1F
soga,還真是深奧啊@@",感謝
01/01 20:04, 1F

01/01 20:25, , 2F
深奧喔?還好吧...這跟寫網頁一樣 路徑是很重要的...
01/01 20:25, 2F

01/01 20:25, , 3F
路徑清楚後很多事情就都解決了 那你的問題解決了嗎?
01/01 20:25, 3F

01/01 20:29, , 4F
那是因為i是Number~"moon"是字串吧~?
01/01 20:29, 4F

01/01 20:32, , 5F
不懂你說的? flash中"moon"+i就是moon1 when i=1
01/01 20:32, 5F

01/01 20:33, , 6F
flash中+號可以當作加起來也可以當作"字"連起來....
01/01 20:33, 6F

01/01 20:54, , 7F
我解釋一下eval eval()是將字串組合 再將組合的字串對應
01/01 20:54, 7F

01/01 20:55, , 8F
到MovieClipe身上 和this[]一樣 不過可以將eval和this
01/01 20:55, 8F

01/01 20:56, , 9F
上是絕對路徑和相對路徑的觀念 這樣會幾較好理解
01/01 20:56, 9F
文章代碼(AID): #15cF1dYk (Flash)
文章代碼(AID): #15cF1dYk (Flash)