论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash教程
Tag:flash cs,flash 8,鼠绘,as,手绘,工具,文字,loading,入门,初学,mc,影片剪辑,声音,mtv,游戏,引导,遮罩,菜单,补间,广告条,时钟,视频教程

飞机蓄力的效果

文章类别:Flash | 发表日期:2008-9-21 19:20:51

  首先是对响应KEYDOWN的几方种方式做一个检测,看看哪个效率比较好。
Key.addListener(c);
c.onKeyDown=function(){
if(Key.isDown(KEY.UP)){
c._y-=1;
}
if(Key.isDown(KEY.DOWN)){
c._y+=1;
}
if(Key.isDown(KEY.LEFT)){
c._x-=1;
}
if(Key.isDown(KEY.RIGHT)){
c._x+=1;
}
}
function control(mc){
if(Key.isDown(KEY.UP)){
mc._y-=1;
}
if(Key.isDown(KEY.DOWN)){
mc._y+=1;
}
if(Key.isDown(KEY.LEFT)){
mc._x-=1;
}
if(Key.isDown(KEY.RIGHT)){
mc._x+=1;
}
}
_root.onEnterFrame=function(){
control(b);
}
setInterval(control,40,d);

点击浏览该文件
可以看到,在一直按住某个键时,用监听器的开始时反应比较慢,但是其对连续响应某个键还是比放在onEnterFrame要好(条件是帧频为25FPS)。所以我把侦听连续按某个键的工作交给Listener的onKeyDown和onKeyUp,上下左右的移动工作交给root.onEnterFrame. 我把最主要的框架讲一下,其实很简单的,当然,由于是偶自己想出来的,不足之处,还请指点。
_global.toggal=0;//用来标识一直按个某个键的持续次数。
_global.n=0;//用来标识子弹的数量
把我们的对象PLANE作为键盘的监听对象。
Key.addListener(plane);
测定连发的要害,用把toggal的值在KeyDown中进行判定。
plane.onKeyDown=function(){
if(Key.isDown(96)){//计算器键盘的0,我喜欢用这个发子弹
       toggal++;
 n++;//迭代过程
          if(toggal<10){//正常的子弹
if(n<50){//内嵌的一个发射子弹的过程
bullet.duplicateMovieClip("bullet"+n,n+100);
eval("_root.bullet"+n)._x=plane._x;
eval("_root.bullet"+n)._y=plane.getBounds(_root).yMin
}
else {n=0;}
}
          else if(toggal>10&&toggal<35){//表示正在蓄力,进行蓄前渲染
smallplane.onEnterFrame=function(){//这种写法成功啦
smallplane._x=plane._x;
smallplane._y=plane.getBounds(_root).yMin+5;
smallplane._visible=true
}
          else if(toggal>35){//蓄力已毕,进行预备发射的渲染,看你的喜好自由发挥。
smallplane._visible=false;
delete smallplane.onEnterFrame;
dot.onEnterFrame=function(){
dot._x=plane._x;
dot._y=plane.getBounds(_root).yMin+5;
dot._visible=true;
dot.play();
}
          }
}
然后,只要在onKeyUp中根据toggal的值决定是否调用就行了
plane.onKeyUp=function(){
if(toggal>35){
superbullet();//蓄力子弹如何作完全看你的个人发挥了,最好是用AS写,没发子的话放一段预设的MC也行啊
}
toggal=0;//别忘了归0,进入下次的迭代过程
}
好了,我理解中的主框架就是蓄力的主框架就是这样,不过要完美的实现,还行花些力气,这是我做的效果,不过还有两个问题,问在下面的回复里。 注重,子弹是用计算器键盘上的0来发射。
点击浏览该文件
视频教程列表
文章教程搜索
 
Flash推荐教程
Flash热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058