您的位置: 首页 > 技术文档 > 多媒体制作 > 什么是AS2.0面向对象编程
贪吃蛇游戏代码翻译 回到列表 通过实例学习AS3.0——案例六
 什么是AS2.0面向对象编程

作者:lzyy 时间: 2008-01-22 文档类型:原创 来自:蓝色理想

有时间,有兴趣,E文还行的可以直接上这看:http://www.kirupa.com/developer/oop2/AS2OOPindex.htm,很长,很详细。

我简单地把我理解的说一下,错误在所难免,不啬赐教,共同进步

引用张图先:

所有的类都是在外部定义,当然如果要使用它们的话,需要设置一下类路径,点击发布设置->actionscript2设置,在类路径里添加你要使用的类路径就行了,当然如果你希望每个flash都使用那些类,那么可以在"编辑->首选项->actionscript2设置"那添加类路径。当然如果只是图个方便的话,直接放到当前文件夹下面就可以了。

在一个.as文件里只能有一个class,而且这个class的name必须和文件名相同。比如有一个motion.as,那么就必须定义一个motion类:

//motion.as
class motion extends MovieClip{
        function motion(){
                // constructor
        }
}

看起来比较死板,但管理起来确实方便了不少。

可以建立一个构造函数(就是跟class同名的函数),这样实例化的时候就可以调用该函数。

变量的类型

支持private,static和public,private不允许外部访问和修改,但可以被children读写(所以相当于protected),默认如果用var声明的话,是public,static可以不用实例化,直接使用。

函数的类型

跟变量的类型一样,也是private,static和public三种,static声明的可以直接使用,比如Math.random()。静态函数只能使用静态变量,其他类型的函数不受影响。

再来讲讲interface,给我的感觉,interface就是为了方便多人协作,避免某些函数没有被声明。

    //simpleInterface.as
    interface simpleInterface {
    function head();
    function body();
    function foot();
    //myClass.as
    class myClass implements simpleInterface {
        function head(){
            trace("I'm head");
        }
        function body(){
            trace("I'm body");
        }
        function foot(){
            trace("I'm foot");
        }
    }

继承

继承的类拥有父类的所有方法和变量(通过extends实现)

//ball拥有mc的所有方法,同时还有自己的fly方法
//ball.as
class ball extends MovieClip{
     private var height:Number;
     function fly(){
           trace("I can fly "+height+" m");
     }
     function ball(h){
           height = h;
     }
}
//时间轴
myball = new ball(30);
myball.fly();//trace "I can fly 30 m"

关于构造函数

如果子类的构造函数没有显示调用父类的构造函数,那么flash会自动给你加上,当然也可以通过super()手动加上

也可通过super去调用父类的其他方法,比如super.parentMethod();

如果想让舞台上的某个mc使用我们自定义的类的话,在链接处的class里天上类名就可以了:

最后来说说文件的管理,最好是新建一个项目,这样查看起来非常方便。

好了,就说这么多了,有时间附上个demo。

欢迎讨论。

附个小demo

ball.as

class ball extends MovieClip {
    private var spring:Number = 0.1;
    private var friction:Number = 0.95;
    private var centerX = (Stage.width-this._width)/2;
    private var v:Number = 0;
    public function ball() {
        _x = 0;
        _y = Stage.height/2 - _height/2;
        this.onEnterFrame = this.start_spring;
    }
    private function start_spring() {
        var a:Number = (centerX - _x)*spring;
        v += a;
        //v *= friction;
        _x += v;
    }
}

在当前路径下,新建一个mc,然后按下图:

最后ctrl+enter就能看到效果了。

源文件下载ball.rar

经典论坛讨论
http://bbs.blueidea.com/thread-2825718-1-1.html

本文链接:http://www.blueidea.com/tech/multimedia/2008/5292.asp 

出处:蓝色理想
责任编辑:moby

◎进入论坛RIA设计与应用版块参加讨论

相关文章 更多相关链接
面向对象的XHTML与CSS编程
通过实例学习AS3.0——案例六
Tracer-Flash代码调试类
用户登录/注册程序——Flash+ASP
通过实例学习AS3.0——案例二
作者文章 更多作者文章
通过实例学习AS3.0——案例六
通过实例学习AS3.0——案例五
通过实例学习AS3.0——案例四
通过实例学习AS3.0——案例三
通过实例学习AS3.0——案例二
热门搜索:CSS Fireworks 设计比赛 网页制作 Dreamweaver Studio8 Flash
站点最新 站点最新列表
跟我去香港:The third Day
单件模式结合命令链模式
快乐狗原创动漫大赛
元素层叠级别及z-index剖析
CSS 浏览器的等宽空格
电影变形金刚概念画欣赏
疯狂的程序员 第三十五回
疯狂的程序员 第三十四回
疯狂的程序员 第三十三回
运用ASDoc工具
栏目最新 栏目最新列表
火星人的耳机
公司正式宣布创业失败
用corelDEAW 12打造唇膏
二行代码解决全部网页木马
一行代码解决iframe挂马
Photoshop制作星空爆炸效果
CorelDraw 12打造休闲裤
Firework如何画特殊的切角图形
Firework打造韩式风格的手提袋
flash实例:打造佛光效果
 

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

本文暂时没有评论和评分

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
大师之路--Photoshop 完全解析
《超越CSS》新书上市
Don't Make Me Think 第2版
HTML与CSS入门经典(第7版)
《FLASH MX2004网站开发精粹》
《CSS入门经典》
《设计师谈网页设计思维》
作品集 更多内容

户外广告网填空海报 Green网站后台管理登陆页面 C2 VTS 铅笔稿 标志设计 2007蓝色理想T恤图案设计大赛《手绘理想》 小i机器人桌面版 月亮