简单(可能过时)AS3 脚本在 30 秒后停止
Simple (maybe antiquated) AS3 script stops after 30 seconds
为 HS 多媒体设计一些 AS3 课程 class 我教。
我已经好几年没在我的 class 中教过这个了,所以我有点生疏了。也有可能我的脚本没有它应该的那样流畅,因为它是基于我很久以前做的一些 AS2 工作。
也就是说,这段代码运行了大约 30 秒,然后停止了。没有错误,在我输入跟踪数组长度的跟踪命令之外没有反馈。
这是让孩子们朝着用 AS3 编写一些游戏的方向发展的课程系列的一部分。在这一个中,我们正在研究创建随机时间和随机放置。我们已经介绍了运动、属性、变量、侦听器和函数。
代码如下:
import flash.events.Event;
var firstMeteor:Number = 1;
var timeSinceLast:Number = 0;
var lastMeteor:Number = 0;
var totalMeteors = 60;
var metProp=.08;
var rocksBox:Array = new Array;
var dropSpeed:Number = 15;
var lowLimit:Number = 350;
stage.addEventListener(Event.ENTER_FRAME,dropRocks);
stage.addEventListener(Event.ENTER_FRAME,moveRocks);
function dropRocks(e:Event):void{
if(lastMeteor<totalMeteors) {
if(Math.random() < metProp) {
lastMeteor++;
var rock:meteor = new meteor;
addChild(rock);
rocksBox.push(rock);
rock.x = Math.random()*500;
rock.y = 20;
timeSinceLast = 0;
}
}
timeSinceLast++;
}
function moveRocks(e:Event):void {
for(var i:int = rocksBox.length-1; i>=0; i--) {
rocksBox[i].y += dropSpeed;
if(rocksBox[i].y>lowLimit) {
removeChild(rocksBox[i]);
rocksBox.splice(i,1);
trace(rocksBox.length);
}
}
}
在您的代码中,只有当到目前为止创建的 meteor
的总数(即 lastMeteor
)尚未达到最大数量 totalMeteors
你指定的!当它达到最大值时,if(lastMeteor<totalMeteors)
将不会让任何其他 "meteor" 创建发生!!
为 HS 多媒体设计一些 AS3 课程 class 我教。
我已经好几年没在我的 class 中教过这个了,所以我有点生疏了。也有可能我的脚本没有它应该的那样流畅,因为它是基于我很久以前做的一些 AS2 工作。
也就是说,这段代码运行了大约 30 秒,然后停止了。没有错误,在我输入跟踪数组长度的跟踪命令之外没有反馈。
这是让孩子们朝着用 AS3 编写一些游戏的方向发展的课程系列的一部分。在这一个中,我们正在研究创建随机时间和随机放置。我们已经介绍了运动、属性、变量、侦听器和函数。
代码如下:
import flash.events.Event;
var firstMeteor:Number = 1;
var timeSinceLast:Number = 0;
var lastMeteor:Number = 0;
var totalMeteors = 60;
var metProp=.08;
var rocksBox:Array = new Array;
var dropSpeed:Number = 15;
var lowLimit:Number = 350;
stage.addEventListener(Event.ENTER_FRAME,dropRocks);
stage.addEventListener(Event.ENTER_FRAME,moveRocks);
function dropRocks(e:Event):void{
if(lastMeteor<totalMeteors) {
if(Math.random() < metProp) {
lastMeteor++;
var rock:meteor = new meteor;
addChild(rock);
rocksBox.push(rock);
rock.x = Math.random()*500;
rock.y = 20;
timeSinceLast = 0;
}
}
timeSinceLast++;
}
function moveRocks(e:Event):void {
for(var i:int = rocksBox.length-1; i>=0; i--) {
rocksBox[i].y += dropSpeed;
if(rocksBox[i].y>lowLimit) {
removeChild(rocksBox[i]);
rocksBox.splice(i,1);
trace(rocksBox.length);
}
}
}
在您的代码中,只有当到目前为止创建的 meteor
的总数(即 lastMeteor
)尚未达到最大数量 totalMeteors
你指定的!当它达到最大值时,if(lastMeteor<totalMeteors)
将不会让任何其他 "meteor" 创建发生!!