Re: [問題] 關於for迴圈在switch case的使用

看板Flash作者 (小強)時間11年前 (2013/03/14 10:11), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
謝謝兩位 我試成功了 深深發覺我原本的寫法真的是很bumbler 雖然說我想利用activeCode來控制所有實體和變數 但利用switch的方式來實作 並不是真正抓到實體名稱的流水號 而是在指定實體觸發下 去額外定義activeCode 當op1觸發時 activeCode=1 然後["op"+activeCode] var+activeCod去作用.. 這種缺點還有 多少個實體就要寫多少個case定義多少個activeCode 如果想要用switch簡化 卻因為case break不能出現在for裡面 而發現這種寫法實在不適合.. 現在使用版友提供的寫法 activeCode = int(event.currentTarget.name.substr(2)); activeCode = 整數(實際觸發的名字的第2個後的字元); 一樣能夠透過activeCode來控制流水號命名的實體和變數 但差別在於activeCode的取得不再需要透過迴圈的判斷和case的定義 而是直接從實體名稱裡抓到流水號裡的字元 這樣子便不再需要迴圈了 也沒有冗長的case.. 以上 供各位版友參考 謝謝 ※ 引述《love112302 (小黑炭)》之銘言: : 假設您有一個實體, 實體名稱是 "op1" : op1.addEventListener(MouseEvent.CLICK, clickHandler); : function(event:MouseEvent) : void { : activeCode = Number(event.currentTarget.Name.replace("op", "")) : opArray[activeCode] = .... : } : 不知道是不是你要的 : ※ 引述《forestluch (小強)》之銘言: : : 想請教關於for的用途 : : 我有一個ActionScript : : 大致上的架構是 : : 放入數個流水號命名的實體 : : 每個實體個別獨有的變數也使用流水號做對應 : : 每個實體都偵聽並執行 同一個function : : 然後function裡面 則用event.currentTarget : : 做switch case 判斷當偵聽啟動時該對哪個實體做什麼.. : : (也就是按鈕1~10都走同的一function 但靠著switch 決定哪個按鈕該動作) : : 當元件數量一多時 重複相似性極高的程式碼相當礙眼 : : 因此想用一個變數來決定實體放置的數量 : : 用for來做簡化程式碼 讓該變數決定for執行的次數 : : ... : : 偵聽的部分 還有個別變數的運算都是OK的 : : 原本1-20行 只要寫一次 讓for執行實體數量次數 決能夠達成 : : 但似乎沒辦法用for 宣告變數命名 : : var a1, a2, a3 //for(i=1;i<=3;i++){ it doesn't work } : : 查了一下資料發現C/C++不允許這種作法 那ActionScript3.0 行嗎? : : 如果行該怎麼做? : : 這部分後來用矩陣的方法達成了. : : array(i) for(i=0;i<=1;i++){array[i]=done} : : 在最重要的switch判斷式 : : case 1: : : 陳述式 : : break; : : case 2: : : 陳述式 : : break; : : ... : : 這部分有辦法用for產生嗎? : : 例如欲放置100個實體 : : 已經可以讓for產生100個實體以及個別需要用到的變數運算 偵聽 : : 但這個switch裡面 case1-100 也能夠讓for產生 : : 而不用100行以上的程式碼 : : 我目前做出來就是error : : 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.34.17.47
文章代碼(AID): #1HGJ6yN7 (Flash)
文章代碼(AID): #1HGJ6yN7 (Flash)