- 注册时间
- 2012-10-25
- 最后登录
- 2021-12-3
- 阅读权限
- 200
- 积分
- 387
- 精华
- 0
- 帖子
- 40
|
下面我们来编写顶层类StageBox的代码:
我们来构思一下,我们首先要产生个无数个Box实例,而且是不停的产生。所以,我们要用一个事件侦听器。当然你可以用Box类里面那种侦听器。但这里,我们来装一个定时的侦听器。这个侦听器可实际上是一个定时器。它可以在定好时后,某个时间点触发一个动作。好吧,我们来看看这个定时器怎么加:
public function timeSet(){
var timeSeter:Timer=new Timer(100 + Math.random() * 100,1);//定时100多毫秒
timeSeter.addEventListener(TimerEvent.TIMER_COMPLETE,newBox); //定时到时,便启动newBox方法
timeSeter.start();//定时开始
}
然后我们在顶层启动函数里,启动这个定时器
public function startStageBox() {
timeSet();
// constructor code
}
然后我们又在定时的触发动作里,再一次触动定时器。这样,它就不断定时了。。。永远无穷无尽下去
public function newBox(event:TimerEvent)
{
var lineine=new box();//实例化一个方块
addChild(box);//把方块到到顶层类作为子类
boxes=new Array();/建一数组
boxes.push(box);//把这无尽的方块加到数组里面便于管理
timeSet();//完了又开始定时
}
这里,我们有义务要设一个函数,去删除不存在的方块所占有的节点,以节约顶层类的资源。。删除的时间,在子类删除自己时,顺便把节点删掉,所以我们没必要在这里判断删除的时间,只需要把这函数在子类里删除自身时调用即可。
public function removeLine(thisBox:Box){
for(var i in boxs) {
if (lines == thisBox) {
lines.splice(i,1);
break;
}
}
好了,大家可以实验一下,代码和附件可以下载,附件里,BOX的名字变成了Line..反正都一样,你也可以起Money,Gold什么的,只要你喜欢。
|
|