推 zpl:不同case之間執行的內容有相似性嗎? 03/13 16:29
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)
推 love112302:不知道可不可以用 event.currentEventName.replace 03/13 21:18
→ love112302:.replace("op","") 變成"1" 再放到你的陣列 03/13 21:19
→ love112302:有點忘了切卻得名子 但是如果是我應該會這樣做 03/13 21:20
→ love112302:才學淺 有錯見諒= = 03/13 21:20
→ zpl:看起來你需要的是取得activeCode的方式對吧 03/13 21:35
→ zpl:activeCode = int(event.currentTarget.name.substr(2)); 03/13 21:35
是的 如果我建立的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)
推 love112302:ㄚㄚ 都沒想到 subString 03/13 21:47
嗯 謝謝 zpl 和 love112302 我試試看^^
※ 編輯: forestluch 來自: 1.162.152.95 (03/13 21:50)