图5-5 “场景”面板在场景列表框中显示了当前电影中所有场景的名称。在“场景”面板左下角有3个按钮,从左到右它们分别是“添加场景”、“重制场景”和“删除场景”按钮。单击该菜单中的场景名称,可以切换到相应的场景中。尽管可以使用任何字符来给场景命名,但是最好使用有意义的名称来命名场景,而不仅仅使用数字区别不同的场景。......
2023-10-30
首先制作地面,当飞船飞动的时候,地面可以相对运动,表明飞船正在飞。
在主时间轴创建一个新层,起名为ground,画一些表示地面的图形。最简单的莫过于一些山峰加上一些低谷,如图10-37所示,一定要保证地面的尺寸和舞台的尺寸一致,而且开始的部分和结束的部分要高度一致,因为要让它循环运动来表示无穷无尽的地面。
选中刚刚画好的地面,按F8键把它转化为影片剪辑。然后选中舞台上影片剪辑实例,在属性面板的实例名称文本框中输入ground。
图10-36 测试激光
图10-37 添加地面
为了显示飞船向右运动的效果,根据相对论,可以向左移动地面,好像坐车的时候感觉地面向后移动一样。移动地面的最好方法就是让ground影片剪辑的X坐标逐渐地减小。
为了使移动的效果看起来更加平滑,需要两个这样的地面影片剪辑。但是不简单地把两个地面的影片剪辑放到一起,而是把两个这样的地面影片剪辑放到另外的一个影片剪辑中,起名为mainGround。然后用影片剪辑mainGround来代替两个单独的ground影片剪辑。换句话说,mainGround影片剪辑包含了两个ground影片剪辑,通过移动mainGround来代替移动两个ground影片剪辑。要做的第一件事情就是把ground影片剪辑放到一个新的影片剪辑中。
选中舞台上的ground实例,按下F8键,创建一个新的影片剪辑,起名为mainGround,同时在属性面板上的实例名称文本框中输入mainGround。
现在的mainGround影片剪辑中只包含一个ground影片剪辑,前面不是说过要用两个ground吗?没错,的确是这样,将在后面用ActionScript来复制一个ground。
现在可以为mainGround添加一些代码了。
选中舞台上的mainGround实例,打开“动作”面板,添加下面的代码:
说明:这段代码放在load ClipEvent中,当mainGround第一次加载的时候运行。
第二行复制了一个ground影片剪辑,给它一个名字ground2,深度为100。
第三行把ground2的X坐标设置成ground的X坐标加上ground的宽度,效果就是正好把ground2放在了ground的右边。
第四行创建一个变量groundStartx,并给它赋初值为mainGround的X坐标。目的就是保存mainGround的初始位置,后面会用到它。
第五行groundspeed=10;建立一个新的变量groundSpeed,它的值等于10。这是地面每帧移动的像素数。
在上述代码后面,再添加另外一个消息处理函数。
说明:这段代码放在enterFrame消息处理函数中,所以每次影片剪辑进入一个新帧的时候,它们都会被调用。MainGround影片剪辑只有一帧,但是它将一直进入那一帧,这个动作是循环的。
第二行:this._x-=groundSpeed;把地面的X坐标减去groundSpeed,前面已经把groundSpeed设置成了10,所以这个语句的效果就是把mainGround向左移动10个像素。
第三行检查mainGround是否已经移动到使mainGround内部的第一个ground完全移出舞台。如果已移出舞台,第四行把mainGround的X坐标设置成它刚刚开始的坐标。
再来看看涉及到的一些变量。
this._x是mainGround的当前X坐标。
ground._width是ground MovieClip的宽度。
groundStartx是先前设置的变量。
当第一个ground完全移出舞台的时候,它的X坐标等于它的开始的X坐标减去它的宽度。在这个时候,第二个ground刚刚开始在舞台上出现。(www.chuimin.cn)
当把mainGround重新移到它开始的位置的时候,必须同时减去groundSpeed,因为mainGround仍然需要向左移动groundSpeed规定的距离。
现在读者可以测试一下这个滚动的地面了,在Flash开发环境中,可能看起来有一点奇怪,因为在测试模式Flash开发环境允许读者看到stage外部的区域,如果在浏览器里测试的话,就一切正常了。
在大多数这种飞船游戏中,地面不是一直都在滚动的。一般情况是这样,飞船开始的时候在屏幕的最左边,当它移动到离屏幕左边大约屏幕宽度的三分之一的时候,飞船停止移动,这个时候地面开始反方向移动。
现在就开始做这个改进。大多数的代码在spaceship的消息处理函数中。Spaceship的位置将决定什么时候开始滚动,什么时候停止滚动。
选中spaceship,右键单击打开“动作”面板,在onClipEvent(load)函数中,在laserCounter=1;这行后面,添加下面的代码:
第一行建立一个新变量scrollx。这个变量将是spaceship刚刚停止向右运动时候的X坐标,当然也是ground开始滚动的X坐标。刚开始的时候把它设置成ground宽度的三分之一。
第二行建立一个新的变量scrollStart。这个变量在ground应该滚动的时候设置成true,在ground静止的时候设置成false。
为了实现spaceship已经移动到了scrollx位置,spaceship停止移动,地面开始反方向滚动,需要修改处理向右方向键的代码。当前的处理代码应该是这样的:
用下面的这段代码代替它:
引入一个if语句,如果this._x(spaceship的当前X坐标)小于scrollx的话,spaceship的X坐标一直增大,一直右移,直到条件不成立的时候,把scrollStart设置成true,不再改变spaceship的X坐标。
地面不会一直滚动,在某些条件下,它是不应该滚动的。
在spaceship的脚本窗口中,为spaceship添加另外一个消息处理函数。
这段代码引入了一个新的影片剪辑事件keyUp。当用户释放键盘上的一个键的时候,这个事件发生。需要的效果是,当用户按下向右的方向键的时候,ground是滚动的;当读者释放向右的方向键的时候,ground停止滚动。通过KeyUp事件,就可以检测是否是释放了向右的方向键。
方法Key.getCode()得到最后释放的按键的键码,所以如果最后按下的键是向右的方向键,就把scrollStart设置成false。
接下来要做的就是添加一些代码,当scrollStart是false的时候,地面停止滚动。
选中mainGround实例,打开它的脚本窗口,当前的onClipEvent(enterFrame)如下:
修改它们,修改后的代码如下:
所做的就是添加了一个if语句,当scrollStart是true的时候移动mainGround。最后,把当前影片的帧频设置成24fps。
现在测试一下影片,读者会发现,当spaceship移动到屏幕三分之一的时候,spaceship停止运动,而地面反而滚动起来,效果就像飞船一直在飞一样。
有关Flash CS6中文版标准实例教程的文章
图5-5 “场景”面板在场景列表框中显示了当前电影中所有场景的名称。在“场景”面板左下角有3个按钮,从左到右它们分别是“添加场景”、“重制场景”和“删除场景”按钮。单击该菜单中的场景名称,可以切换到相应的场景中。尽管可以使用任何字符来给场景命名,但是最好使用有意义的名称来命名场景,而不仅仅使用数字区别不同的场景。......
2023-10-30
最后将运动层和引导层连接起来,就可以使对象沿指定的路径运动。下面通过一个实例来介绍运动引导动画的制作方法。选择“文件”/“导入”/“导入到舞台”命令,导入一幅GIF动画,并调整位置。单击引导层的第1帧,使用铅笔工具在舞台上绘制一条曲线,该曲线将作为运动动画的轨迹。图5-20 移动butterfly实例的中心图5-21 蝴蝶在第15帧的状态......
2023-10-30
我们通过模拟星空这个实例,向大家讲述前面讲到的几种比较重要的函数,给大家加深印象,让读者尽快掌握它们。按Ctrl+F8创建一个名为star的影片剪辑。单击渐变栏右边的颜色游标,然后在R,G,B和Alpha文本框中输入0,0,0,100%,填充效果如图8-2所示。图8-1 模拟星空图8-2 填充效果分别单击第2帧和第3帧,然后分别按下F6,插入两个关键帧。选中舞台上的star实例,在属性面板的实例名称文本框中输入“star”。......
2023-10-30
Flash CS6在众多功能上都有了有效的改进。如果不作特殊说明,本书提到的Flash或Flash CS6均指Flash Professional CS6简体中文版。本节将介绍Flash CS6中一些较为重要的新功能与新特性。FlashCS6会将选定网络接口的IP地址打包到调试模式移动应用程序中。......
2023-10-30
既然是射击游戏,没有对手还叫什么游戏,接下来就要创建“对手”。将使用duplicateMovieClip来创建多个对手飞船。写一段代码来设置对手飞船的随机初始位置和速度。this._x=600;把对手飞船的X坐标设置为600。this._y=random+100;把对手的Y坐标设置成一个在100~2099之间的随机数。enemySpeed=random+1;设置一个为enemySpeed在1~4范围内的随机数,这是对手飞船每一帧移动的像素数。这样做,唯一的目的是为了使飞船的移动更加真实。这个变量是任何一个时间点舞台上的对手飞船的个数。......
2023-10-30
提示:首先将导入的图像转换为元件,然后参照本章5.5节中有关知识创建沿曲线移动的动画,通过对应的属性设置面板将第2个关键帧所对应的实例的Alpha属性设置为0。注意各帧之间的渐变类型,以及注意关键帧的制作。图5-76 关键帧效果图打开一个Flash文件,然后以GIF、JPEG两种不同格式进行发布。......
2023-10-30
在输出影片时,对声音设置不同的取样率和压缩比对影片中声音播放的质量和大小影响很大,压缩比越大、取样率越低会导致影片中声音所占空间越小、回放质量越差,因此这两方面应兼顾。在输出短的事件声音时最好压缩成ADPCM格式。......
2023-10-30
若要跳到影片中的某一特定帧或场景,可以使用goto动作。当影片跳到某一帧时,可以选择参数来控制是从这一帧播放影片,还是在这一帧停止。影片也可以跳到一个场景并播放指定的帧,或跳到下一场景或上一场景的第一帧。选择要为其指定该动作的帧、按钮实例或影片剪辑实例,并打开“动作”面板。在参数窗格的“场景”弹出菜单中,指定目标场景。如果选择当前场景或已命名的一个场景,则必须为播放头提供要跳转到的帧。......
2023-10-30
相关推荐