愚人码头 发表于 2009-1-22 16:54:30

为AS2.0添砖加瓦-编写类扩展(3)

FLASH时钟类 clock.as

功能:自动控制时.分.秒针围绕

演示两个FLASH时钟,引用的是同一个clock.as(界面做得随便了.重要的是as)


clock.as源码分析:

这个不是扩展类.而是一个自定义类.通过自定一个DATE对象.再利用DATE对象本身的方法
求值后.通过自定义对象返回想要的值.就成了一个公共类.让MC或文本框等FLASH元素直接
调用.


class clock
{
        var newdate:Date;//建立一个日期变量
       
        function get_newdate()
        {
                newdate = new Date();//把这个变量变成一个日期对象
        }
       
                function get_Seconds()//得到秒钟转动角度
        {
        get_newdate();
        return newdate.getSeconds()*6;
        }
       
       function get_Minutes()//得到分钟转动角度
        {
        get_newdate();
        return newdate.getMinutes()*6 newdate.getSeconds()/10;
        }

       function get_Hour()//得到时钟转动角度
        {
        get_newdate();
        return newdate.getHours()*30 newdate.getMinutes()/2;
        }
}



再建立一个FLA,画好表盘.再把时秒,分钞,秒钟分别做成MC,
分别命名为:hour,minute,second

然后在LAYER1的第一帧写上调用CLASS的代码:


var myclock = new clock(); //建立一个名为myclock的新的clock对象.作为引用clock类
_root.onEnterFrame=function()
{
second._rotation = myclock.get_Seconds();//直接使用clock类的秒针转动值方法赋值给MC second的角度
minute._rotation =myclock.get_Minutes();
hour._rotation=myclock.get_Hour();
        }


完成.现在可以换上不同的表盘样子.而且不用每个都去更新AS.基本的AS代码已经做为类
文件独立操作了.

这个实例也不难.主要是一个as文件可以解决许多问题.你可以自定义扩展类,自定义类函数
甚至可以做成自定义组件,实现不同的方法与属性.树立OOP的概念,一切都可以做为对象.
   
页: [1]
查看完整版本: 为AS2.0添砖加瓦-编写类扩展(3)