首页  韩国资源  酷站加油  我的展厅  设计名站  古典元素  推荐下载  设计欣赏  每周专访  招募精英  人才专区  网页教程  平面设计  编程开发  设计竞赛
当前位置:首页 > 网页教程 > Flash教程 > 正文
Google
FLASH中简单的物体二段跳效果
来源:火柴人武斗馆 2008年04月14日 15:56 网友评论:0条 点击:
  非常非常简单的效果,按任意键进行方块的跳跃,有二段跳效果和轻跳和重跳效果,根据按键长短判定的。这是在兄弟会论坛做的一道题,很应该转来跟大家分享下~

http://www.68design.net/download/20084/20080409141318564.swf

代码如下:
package {
/*author : CYPL*/
        import flash.display.*;
        import flash.events.*;
        import flash.utils.Timer;
        public class JumpTest extends Sprite {
                private static  const G:int=1;
                private var box:Sprite;
                private var landObject:Sprite;
                private var ySpeed:int=0;
                private var jumpSpeed:int=-15;
                private var keyPressed:Boolean= false;
                private var keyReleased:Boolean=true;
                private var comboJump:Boolean=false;
                private var inAir:Boolean=true;
                private var timer:Timer;
                public function JumpTest() {
                        box=drawRect((stage.stageWidth-50)/2,100,50,50,0xff0000);
                        landObject=drawRect(0,300,stage.stageWidth,20);
                        (timer=new Timer(30)).start();
                        configureControl();
                }
                private function configureControl():void {
                        stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler,false,0,true);
                        stage.addEventListener(KeyboardEvent.KEY_UP,keyUpHandler,false,0,true);
                        timer.addEventListener(TimerEvent.TIMER,timerHandler,false,0,true);

                }
                private function drawRect(posX:Number,posY:Number,w:Number,h:Number,color:uint=0):Sprite {
                        var rect:Sprite;
                        with (rect=new Sprite) {
                                graphics.beginFill(color);
                                graphics.drawRect(0,0,w,h);
                                x=posX;
                                y=posY;
                        }
                        return Sprite(addChild(rect));
                }
                private function keyDownHandler(evt:KeyboardEvent):void {
                        keyReleased && inAir && !comboJump&&(comboJump=true,ySpeed=jumpSpeed,trace("comboJump"));
                        !keyPressed&&(keyPressed=true,inAir=true,ySpeed=jumpSpeed,timer.start());
                        keyReleased=false;
                }
                private function keyUpHandler(evt:KeyboardEvent):void {
                        keyReleased=true;
                        ySpeed<-5&&(ySpeed+=8)&&ySpeed>0&&ySpeed=0;
                }
                private function timerHandler(evt:TimerEvent):void {
                        evt.updateAfterEvent();
                        ySpeed+=G;
                        box.y+=ySpeed;
                        ySpeed>0&&(box.hitTestObject(landObject))&&(trace(landObject.y),box.y=landObject.y-box.height,timer.stop(),keyPressed=false,inAir=false,comboJump=false);
                }



        }
}
//文档类,fla中设置下就能看到效果
上一篇:用FLASH改变网页的背景颜色   下一篇:火柴人武斗馆:时间轴控制命令
收藏此页】【打印】【关闭
 相关文章  我要点评
·巧用Point类计算矢量
·动态文本框旋转后消失的解决方法
·关于建设flash全站所需要的最基本的知识点
·Flash打造铅笔png图标
·谨防“Flash蛀虫”病毒 已感染上万台电脑
·FLASH解决声音和矢量图的问题
·flash cs3生成网页的flash插入方法研究
·制作流动的曲线

免责声明:本站刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。对本文有任何异议,请联络:68design#163.com
转载要求:作者及来源信息必需保留。转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印。



关于我们 | 在线反馈 | 广告报价 | 友情链接 | 联系我们 | 免责声明 | 在线投稿 | 网站地图
Copyright © 2003-2007 68design.net, All Rights Reserve 【找网页设计师,当然上网页设计师联盟】