主题:  菜菜代码问题请教

数码天空

职务:普通成员
等级:2
金币:1.0
发贴:409
注册:2002/8/3 17:39:00
#12003/6/18 10:30:33
on (release)
{
u = !u;
if (u == true)
{
tellTarget("shuoming")
{
gotoAndStop(2);
} // end of tellTarget
}
else
{
tellTarget("shuoming")
{
gotoAndStop(1);
} // end of tellTarget
} // end if
}
在这段代码中u = !u; 起什么作用,为什么换成u==u; 就不行了


个人网站www.cscxy.com

一叶飞烟

职务:普通成员
等级:1
金币:0.0
发贴:46
注册:2001/10/6 23:55:33
#22003/6/18 11:04:44
当然不能换。==是相同的意思,!是逻辑非,也就是“不是”的意思。比如:!happy就是“不happy”的意思。
ok,祝你好运!



数码天空

职务:普通成员
等级:2
金币:1.0
发贴:409
注册:2002/8/3 17:39:00
#32003/6/18 15:58:57
我是想知道为什么点一下能响应下面的命令,返回一个真值,再点一下却返回一个假值。


个人网站www.cscxy.com

一叶飞烟

职务:普通成员
等级:1
金币:0.0
发贴:46
注册:2001/10/6 23:55:33
#42003/6/18 17:55:37
我看因为u=!u的作用就是用来判断你上次操作的布尔值。就好象我们使用指令来判断是否拾取一个mc,如果当前是拾取的状态,我们再点按钮就放下,如果是放下的状态,我们再点按钮就拾取。那么如何记录你是在拾取还是放下的状态呢,脚本使用判断u=!u的方式。所以这是一个不错的用法。以前我都是用两个判断来记录,你的例子也给了我不小的启发。



数码天空

职务:普通成员
等级:2
金币:1.0
发贴:409
注册:2002/8/3 17:39:00
#52003/6/18 21:26:16
说得好象有点道理,但每次运行这句语句时,u都会重新附值一次,为非u状态,按道理跳不到else这一步,还是不太明白?


个人网站www.cscxy.com

一叶飞烟

职务:普通成员
等级:1
金币:0.0
发贴:46
注册:2001/10/6 23:55:33
#62003/6/19 13:35:22
当然会跳到else了,因为!u本身也是变量啊,当!u这次记录为true时,指令跳转并停止到shuoming的第二帧,这时!u的true值也传递给了u,再次赋值时,!u岂不就是非“true”了吗,非“true”不就是“false”吗?“false”岂不就符合else的逻辑分支了!就会执行else的分支语句。
别忘了,赋值语句赋的传递值,不是每次初始化都是原始值,只有象u=2这样的赋值语句才会每次初始化为2,记住,!u也是变量啊。
另外,“telltarget”是过时的命令了,建议使用with。



刀剑笑

职务:普通成员
等级:1
金币:1.0
发贴:141
注册:2002/9/28 2:16:34
#72003/6/19 13:44:24
哇。。。

偶看晕了!

真复杂啊!

没有简单点的代码教程!



数码天空

职务:普通成员
等级:2
金币:1.0
发贴:409
注册:2002/8/3 17:39:00
#82003/6/19 15:21:45
利害,讲得比较透,你的语法掌握得比我好,看样子我要更加努力了。


个人网站www.cscxy.com

一叶飞烟

职务:普通成员
等级:1
金币:0.0
发贴:46
注册:2001/10/6 23:55:33
#92003/6/19 15:29:01
客气了,大家共同学习,共同提高!!