主题:  众斑竹,请教一个很笨的问题

Aw3000

职务:普通成员
等级:1
金币:0.0
发贴:79
注册:2003/1/9 14:49:15
#12003/1/21 12:40:53
一组按钮,如何能让无论其中哪一个只被点一次?再点其他按钮时,之前被点的一个能够激活?



金山羊

职务:普通成员
等级:4
金币:10.0
发贴:827
注册:2002/1/6 14:44:13
#22003/1/21 12:46:06
不太明白你的意思?你到底要干什么不清楚


5d.cn
FLASHDEP
TECHNOLOGY SUPPORT
JAVA/ACTIONSCRIPT/javascript
CFML/JSP/COLDFUSION/FLASH REMOTING
JRUN/COLDFUSIONMX
FLASH/DREAMWEARER

Aw3000

职务:普通成员
等级:1
金币:0.0
发贴:79
注册:2003/1/9 14:49:15
#32003/1/21 13:00:48
一组按钮,其中任何一个被点一次之后,就不能再点第二次,因为每点一次,我的函数就执行一次,结果就不对了。

我说明白了么?



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
注册:2003/11/27 18:07:11
#42003/1/21 13:24:09
在onrelease事件中把自己disable掉



Aw3000

职务:普通成员
等级:1
金币:0.0
发贴:79
注册:2003/1/9 14:49:15
#52003/1/21 13:32:56
那点其他的按钮时,怎么激活呢?



s22

职务:版主
等级:4
金币:10.0
发贴:1634
注册:2004/12/19 13:06:46
#62003/1/21 14:14:05
_btn.onPress=function(){
if(!_root.lasClick){
_root.lastClick=this;
this.enabled=0;
}else{
_root.lastClick.enabled=1;
_root.lastclick=this;
_root.lastclick.enabled=0
}
//code here
}

是不是这样。



Aw3000

职务:普通成员
等级:1
金币:0.0
发贴:79
注册:2003/1/9 14:49:15
#72003/1/21 14:43:50
看不懂!
_btn.onPress=function(){

if(!_root.lasClick){
_root.lastClick=this;
//这个this 是啥意思?为什么要这样写?是对象还是变量?
this.enabled=0;
}else{
_root.lastClick.enabled=1;
_root.lastclick=this;
_root.lastclick.enabled=0
}
//code here
}



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
注册:2003/11/27 18:07:11
#82003/1/21 14:48:23
就是当前对象。可以认为它是一个指向当前对象的指针



Aw3000

职务:普通成员
等级:1
金币:0.0
发贴:79
注册:2003/1/9 14:49:15
#92003/1/21 16:48:19

怎么用?按钮怎么还是能用?



Aw3000

职务:普通成员
等级:1
金币:0.0
发贴:79
注册:2003/1/9 14:49:15
#102003/1/21 16:55:13
可不可以通过一个循环来做?跳过当前点击的按钮,使当前按钮的enabled=flase,使其他的按钮的enabled=true。
我的按钮命名是有规则的。这样做成么?我还没成功。



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
注册:2003/11/27 18:07:11
#112003/1/21 17:19:27
用循环速度更快。
在循环体内不要区分哪个是自己,哪个是其他。先一律enabled=true,循环完了再this.enabled=false 这是一个高效循环的技巧



5D荣誉版主

职务:普通成员
等级:2
金币:1.0
发贴:515
注册:2004/1/23 23:18:37
#122003/1/21 17:27:05
按命名规则的:
比如:b1,b2....b5
for(i=1;i<=5;i++){
eval("b"+i).onRelease=function(){
for(i=1;i<=5;i++){
eval("b"+i).enabled=true
}
this.enabled=false
}
}



Aw3000

职务:普通成员
等级:1
金币:0.0
发贴:79
注册:2003/1/9 14:49:15
#132003/1/21 18:51:31
253!你们的方法都行。敬佩!
mmommo斑竹:我很喜欢你这样的代码结构,不过当我用了这种方法后,却发现b1,b2,b3...这样点下去,回头再点b1,b2,b3...的时候,虽然enable=true,却不起作用。
我的代码是这样的:
function ddd(){
for(i=1;i<=5;i++){
_root["b"+i].onRelease=function(){
for(i=1;i<=5;i++){
_root["b"+i].enabled=true
}
this.enabled=false
}
}
}

b1.onRelease=function(){
_root.mc.gotoAndStop("label 1")
ddd()
}
我哪里错了?



UndeadCraft

职务:版主
等级:4
金币:10.0
发贴:1993
注册:2001/5/28 17:37:43
#142003/1/21 20:43:03
不行就用笨方法
点这个按钮的同时,把自己设成enable=false;其它都设成true;只是麻烦了点



Aw3000

职务:普通成员
等级:1
金币:0.0
发贴:79
注册:2003/1/9 14:49:15
#152003/1/21 21:03:38
地狱天堂在上个帖子中说
引用:
不行就用笨方法
点这个按钮的同时,把自己设成enable=false;其它都设成true;只是麻烦了点


各位斑竹的办法都是行的,我想可能是我在哪一步错了,目前,我用的是s22的方法,不过这位老哥的代码我有点晕,所以更想看看mmommo的代码,我觉得更亲和一点。另外,老兄,我可有100多个按钮阿。