5、编写AAGun.as类
创建类的方法同第3步。首先选中库中的AAGun元件,打开项目面板创建类。在"将类邦定到库元件"前面打勾,点下"使用所选库元件"的单选按钮。图:邦定库元件
AAGun类:邦定库中的炮元件,向左移动向右移动,检测边界,自动消毁。
package {
import flash.display.*;
import flash.events.*;
import flash.utils.getTimer;
public class AAGun extends MovieClip {
static const speed:Number = 150.0;
private var lastTime:int; // 控制移动的Timer
public function AAGun() {
// 枪的初始位置
this.x = 275;
this.y = 340;
//运动
addEventListener(Event.ENTER_FRAME,moveGun);
}
public function moveGun(event:Event) {
// 得到时差
var timePassed:int = getTimer() - lastTime;
lastTime += timePassed;
// 现在的位置
var newx = this.x;
// 移动到左边
if (MovieClip(parent).leftArrow) {
newx -= speed*timePassed / 1000;
}
// 移动到右边
if (MovieClip(parent).rightArrow) {
newx += speed*timePassed / 1000;
}
// 检测边界
if (newx < 10) newx = 10;
if (newx > 540) newx = 540;
// 更新位置
this.x = newx;
}
// 移除屏幕上的炮和事件
public function deleteGun() {
parent.removeChild(this);
removeEventListener(Event.ENTER_FRAME,moveGun);
}
}
}
新建文件Airplane.as
Airplane类:邦定库中的飞机元件。随机产生飞机,随机的速度,产生5种飞机样式,检测是否飞出边界,检测被子弹击中。自动毁灭和爆炸效果。
package {
import flash.display.MovieClip;
import flash.events.TimerEvent;
import flash.utils.Timer;
import flash.utils.getTimer;
import flash.events.Event;
public class Airplane extends MovieClip {
private var dx:Number; // 飞机的速度、方向
private var lastTime:int; // 控制移动的Timer
//左右移动
public function Airplane(side:String, speed:Number, altitude:Number) {
if (side == "left") {
this.x = -50; // start to the left
dx = speed; // fly left to right
this.scaleX = -1; // reverse
} else if (side == "right") {
this.x = 600; // start to the right
dx = -speed; // fly right to left
this.scaleX = 1; // not reverse
}
this.y = altitude; // vertical position
this.gotoAndStop(Math.floor(Math.random()*5+1));
// set up animation
addEventListener(Event.ENTER_FRAME,movePlane);
lastTime = getTimer();
}
//检测边界
public function movePlane(event:Event) {
// get time passed
var timePassed:int = getTimer()-lastTime;
lastTime += timePassed;
// move plane
this.x += dx*timePassed/1000;
// check to see if off screen
if ((dx < 0) && (x < -50)) {
deletePlane();
} else if ((dx > 0) && (x > 600)) {
deletePlane();
}
}
// 检测碰撞,子弹击中飞机跳转到帧标签"explode"演示爆炸动画。
public function planeHit() {
removeEventListener(Event.ENTER_FRAME,movePlane);
MovieClip(parent).removePlane(this);
gotoAndPlay("explode");
}
// 移除舞台上的飞机和事件
public function deletePlane() {
removeEventListener(Event.ENTER_FRAME,movePlane);
MovieClip(parent).removePlane(this);
parent.removeChild(this);
}
}
}
flash播放器APP v3.265 34.02 MB
下载
湘ICP备2022002427号-10湘公网安备:43070202000427号
© 2013~2019 haote.com 好特网