袁幼阶靠谱作文网

标题: 大家要学FLASH动画编程吗?跟我来-平面设计唐勇抛砖帖5 [打印本页]

作者: admin    时间: 2012-11-1 16:22
标题: 大家要学FLASH动画编程吗?跟我来-平面设计唐勇抛砖帖5
下面我们来编写顶层类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什么的,只要你喜欢。








Box.as

172 Bytes, 下载次数: 6400

StageBox.as

116 Bytes, 下载次数: 6430

下落的方块.fla

6.04 KB, 下载次数: 6511


作者: 道可道    时间: 2012-12-5 20:56
这太难了吧!!我都不熟,学生能学得会啊?




欢迎光临 袁幼阶靠谱作文网 (https://yuanyoujie.vip/bbs/) Powered by Discuz! X2.5