[問題] 關於for迴圈在switch case的使用
想請教關於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: 118.167.153.186
※ 編輯: forestluch 來自: 118.167.153.186 (03/13 15:57)
※ 編輯: forestluch 來自: 118.167.153.186 (03/13 15:59)
推
03/13 16:29, , 1F
03/13 16:29, 1F
switch (event.currentTarget)
{
case op1 :
activeCode = 1;
opTargetWidth[activeCode] = actTargetWidth;
picTargetX = picIntTargetX -((activeCode-1)*pic_mix.pic1.width-5);
break;
case op2 :
activeCode = 2;
opTargetWidth[activeCode] = actTargetWidth;
picTargetX = picIntTargetX -((activeCode-1)*pic_mix.pic1.width-5);
break;
}
這是改寫前的程式碼
基本上執行的動作都是一樣的
只是 是 誰 要執行
所有的按鈕監聽都執行這個function
然後function執行時 透過switch 找到 現階段是誰在觸發
並給予一個變數 activeCode 這個變數是用來呼叫流水號的實體及其變數
因為前面在宣告運算偵聽都用for完成了
精簡了大幅的程式碼 所以希望這個switch也能比照精簡
※ 編輯: forestluch 來自: 1.162.152.95 (03/13 20:29)
推
03/13 21:18, , 2F
03/13 21:18, 2F
→
03/13 21:19, , 3F
03/13 21:19, 3F
→
03/13 21:20, , 4F
03/13 21:20, 4F
→
03/13 21:20, , 5F
03/13 21:20, 5F
→
03/13 21:35, , 6F
03/13 21:35, 6F
→
03/13 21:35, , 7F
03/13 21:35, 7F
是的 如果我建立的10個按鈕
op1, op2, op3,.... op10
同時他們也各有對應的變數
var1, var2, .....var10
但偵聽的結果全都導向同一個 function
要用一個function來做多個按鈕的動作
我想到的便是在這個function裡包下每個按鈕的動作
並且利用switch 的 event.currentTarget 來做判別
將判別的各個結果定義成一個變數 activeCode
之後利用["op"+activeCode]的方式去執行動作還有變數的計算
因為這樣
每個case的內容幾乎是一樣的 差別在於是哪個按鈕和底下的變數做動作
目前為止是OK的 差在 用for 改寫switch這段
※ 編輯: forestluch 來自: 1.162.152.95 (03/13 21:49)
推
03/13 21:47, , 8F
03/13 21:47, 8F
嗯 謝謝 zpl 和 love112302 我試試看^^
※ 編輯: forestluch 來自: 1.162.152.95 (03/13 21:50)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):
Flash 近期熱門文章
PTT數位生活區 即時熱門文章