作者forestluch (小强)
看板Flash
标题Re: [问题] 关於for回圈在switch case的使用
时间Thu Mar 14 10:11:05 2013
谢谢两位 我试成功了
深深发觉我原本的写法真的是很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