纯AS实现水平移动的幻影 |
| 作者:佚名 来源:闪吧 作者: amwanfwbx 更新:2007-1-13 20:48:58 错误报告 我要投稿 |
//效果有点垃圾,不过希望大家能认可我的编程风格
新建一FLASH文档
背景设为黑色,30帧每秒:
在第一帧写如下代码:
var speed:Number = 10;// 粒子速度 var shadow_arr:Array = new Array();// 粒子数组 var shadow_num:Number = 10;// 影子数量 var shadow_step:Number = 2;// 影子步长 var shadow_scale:Number = 40;// 影子缩放比例 var id:Number = 0; ////////////////////////////////////////////////// // 绘制主体 // ///////////////////////////////////////////////// var body = _root.createEmptyMovieClip("body", 0); shadow_arr.push(body); function drawBody():Void { body._x = 0; body._y = Stage.height/2; body.lineStyle(5, 0xffffff, 100); body.moveTo(0, 0); body.lineTo(-5, 0); } drawBody(); /////////////////////////////////////////////// // 使移动 body.onEnterFrame = function() { this._x += speed; if (isOut(this)) { //是否出台 this._x = 0; } updateAfterEvent(); }; function isOut(b:MovieClip):Boolean { return (b._x>Stage.width); } function copyBody() { var cBody = body.duplicateMovieClip("body" add id, id+10); shadow_arr.push(cBody); cBody._x = shadow_arr[id]._x-shadow_step; // 比前一个影子的坐标少步长大小 cBody.onEnterFrame = body.onEnterFrame; // 按body的规律运动 id++; shadow_arr[id]._alpha -= (80/shadow_num)*id; shadow_arr[id]._yscale -= (shadow_scale/shadow_num)*id; if (id == shadow_num) { // 复制出足够的影子了 clearInterval(copyShadowid); } } var copyShadowid = setInterval(copyBody, speed);
// GAME OVER /// ////////////////////////////////////////////// 效果:
点击浏览该文件
简单改改的效果:
点击浏览该文件
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |