Re: [問題] 關於for迴圈在switch case的使用
謝謝兩位 我試成功了
深深發覺我原本的寫法真的是很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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
Flash 近期熱門文章
PTT數位生活區 即時熱門文章