袁幼阶靠谱作文网

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 15188|回复: 1
打印 上一主题 下一主题

大家要学FLASH动画编程吗?跟我来-平面设计唐勇抛砖帖5

[复制链接]

36

主题

0

好友

387

积分

管理员

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
楼主
发表于 2012-11-1 16:22:47 |只看该作者 |倒序浏览
下面我们来编写顶层类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, 下载次数: 7118

StageBox.as

116 Bytes, 下载次数: 7140

下落的方块.fla

6.04 KB, 下载次数: 7216

回复

使用道具 举报

0

主题

0

好友

4

积分

版主

Rank: 7Rank: 7Rank: 7

沙发
发表于 2012-12-5 20:56:47 |只看该作者
这太难了吧!!我都不熟,学生能学得会啊?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|袁幼阶靠谱作文网

GMT+8, 2024-11-26 00:02 , Processed in 0.179861 second(s), 33 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部