|
现在舞台上放了一个MC,我们要让此MC在舞台上移动,但是当MC的X坐标达到400的时候,我们要让此MC调个头,该如何做呢?
用一段中文语句来描述上面的要求:"MC不断的向右移动,如果MC的坐标大于或者等于400时,MC调头。"
onClipEvent (enterFrame) {//不断载入下列{}中的内容 this._x += 5;//当前的MC的 X坐标自身+5 if (this._x>=400) {//如果当前的MC的X坐标大于或者等于400 this._xscale = -this._xscale;//当前的MC的X缩放=-X缩放 } }
点击这里下载源文件
上面的实例中,MC调头后却乱动,假设我们要让MC调头后向左方移动,那么怎么操作呢?我们试着这样写:
onClipEvent (enterFrame) { this._x += 5; if (this._x>=400) { this._xscale = -this._xscale; this._x-=5 } }
即:在条件判断中添加this._x-=5,但是一测试,发现问题没有得到解决,仔细研究:原来此段语句中出现逻辑错误:既要让MC 的x坐标减,又要让MC的x 坐标加,究竟要让人家怎样! 要解决这个问题,我们需要考虑到用变量,变量这个词语,只要读过初中的人一定知道,最原始的理解,变量,就是变化的量呗,例如重力公式中G=mg G和m 就是变量,而g为恒量,AS中称常量。在AS中,要使用变量,应当先申明变量,在申明变量的同时可以为变量赋值,也可以在使用的时候对变量赋值。赋值的方法:比如:var i=0现在我们来解决MC可以返回的问题。
onClipEvent (load) { var i = 5//当MC载入后,就申明变量i=5 } onClipEvent (enterFrame) { this._x += i;//MC的x坐标+=i,就是说+=5 if (this._x>=400) { this._xscale = -this._xscale; i = -i;//既然i=-i那么i=-5了,上面的this._x+=i就成了this._x+=-5 } }
点击这里下载源文件
作业:用AS控制虫子在舞台上按照矩形的道路行走,并且虫子头在前。
|