您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 股票报告 > ActionScript3.0从零基础学习类
的教程,但公司太忙都没时间写,最近看到群里有些朋友对3.0还不是很了解,所以从现在开始抽时间写点教程,从基本的东西开始.很多人还习惯用2.0去写一些东西,我已经有半年多没用2.0,很多2.0的习惯不能带到3.0中来,比如说在MC或BUTTON上去写代码,当然3.0里面还是可以在帧上写代码(这里用到的版本是FLASHCS3,FLEX对于初学者来说还不适合),但要想把AS学好,不管是2.0还是3.0都应该用类的方式来写代码.现在来写一个简单的类,了解一下类的结构:package{publicclassMyClass{publicfunctionMyClass(){}}}这里是一个类的简单结构,package是包的意思,学过JAVA的朋友应该知道这个概念,其实说简单点就是这个类文件所放的位置,假设现在我们这个项目是放在d:\exam这个文件夹里面,那么我们刚才写的类直接保存在exam这个文件夹里面,取名叫MyClass.as就可以了(注意:类的文件名应该跟类名一样),因为现在package后面没有任何东西,如果代码写成这样:packagenet.smilecn{publicclassMyClass{publicfunctionMyClass(){}}}那么MyClass.as就应该放在d:\exam\net\smilecn这个路径下面.publicclassMyClass:这里是表示我们要建的这个类的名字是MyClass,这个名字可以随便起,习惯上以大写开头publicfunctionMyClass(){}:funciton代表一个方法名,可以说是函数,跟类名相同的方法,我们称为构造函数,就是这个类被实例化时执行的函数,现在我们在把代码改一下:packagenet.smilecn{publicclassMyClass{publicfunctionMyClass(){trace(这个我写的第一个类);}}}我们在d:\exam下建立一个FLA文件,在第一帧写如下代码:importnet.smilecn.MyClass;varmyClass:MyClass=newMyClass();那么在输出面板里就会看到―这个我写的第一个类‖这段信息了,importnet.smilecn.MyClass:导入我们的类(类在使用前要导入net.smilecn是包名,MyClass是类名)varmyClass:MyClass=newMyClass():实例化MyClass这个类(实例化的时候会执行构造函数,那么就会执行trace这句代码)今天就到这里,下节继续讲解类的使用.(编辑:非熊)包概念,构造函数当前位置:主页AS入门作者:arrowyoung发表于:2009-08-29Tag:包概念构造函数菜鸟教程接着上一节的内容,上一节中我们建了一个简单的类,讲解了包的概念,构造函数的概念,接下来再看看成员常、变量和成员函数的概念,再来看一段代码:packagenet.smilecn{publicclassMyClass{publicconstPI:Number=3.1415926;publicvarr:Number;privatevars:Number;publicfunctionMyClass(){trace(这个我写的第一个类);}}这里我们在以前的基础上增加了几句代码,const是定义常量,var是定义变量,所谓的常量就是永远不能改变的量,变量就是能够改变的量;public、private是属性关键字,在AS3中属性关键字有这样几个:public:指定类、变量、常量或方法可用于任何调用者private:指定变量、常量或方法仅可供声明或定义它的类使用protected:指定变量、常量、方法或命名空间只可用于定义它的类及该类的任何子类internal:指定类、变量、常量或函数可用于同一包中的任何调用者这里我们先重点看一下public、private这两个属性关键字,从字面上理解public是公共的意思,说简单点就是任何地方都可以调用,private是私有的意思,就是说只有这个类中才可以调用,我们用一个例子做一个简单的说明,还是在上一节中我们用的FLA文件中的第一帧加上这个的代码:importnet.smilecn.MyClass;varmyClass:MyClass=newMyClass();myClass.r=3;//正确myClss.s=18;//错误可以看到因为r声明为public,所以我们在外部调用是正确的,s声明为private,所以不直接在外部访问s这个变量,这就是public和private的区别,那我们要在外部改变s的值应该怎么做呢,我们可以这样做,在来修改MyClass类:packagenet.smilecn{publicclassMyClass{publicconstPI:Number=3.1415926;publicvarr:Number;privatevars:Number;publicfunctionMyClass(){trace(这个我写的第一个类);}publicfunctionsetSValue(value:Number):void{s=value;}}}这样我们通过一个公共方法(方法就是函数的意思)设置了s的值,在FLA文件中这样调用:myClass.setSValue(18);就可以了,当然跟其它语言一样,我们也可以用get和set方法来读取或写入private变量的值:packagenet.smilecn{publicclassMyClass{publicconstPI:Number=3.1415926;publicvarr:Number;privatevars:Number;publicfunctionMyClass(){trace(这个我写的第一个类);}publicfunctionsetsValue(value:Number):void{s=value;}publicfunctiongetsValue():Number{returns;}}}我们在调用的时候就可以用这样的语句了:myClass.sValue=18;//(当使用过set后可以这样操作)vara=myClass.sValue;//(当使用过get后可以这样操作)(编辑:非熊)投稿:51as.com@gmail.com有疑问:去艾睿论坛交朋友:去友吧类的继承当前位置:主页AS入门作者:arrowyoung发表于:2009-08-29Tag:菜鸟教程继承这一节,我们讲到一个我们用的比较多的一个概念—-继承.继承是指一种代码重用的形式,允许程序员基于现有类开发新类。现有类通常称为‖基类‖或‖超类‖,新类通常称为‖子类‖。先看一段代码:packagenet.smilecn{importnet.smilecn.MyClass;//类在使用之前要先导入publicclassMySubClassextendsMyClass{publicfunctionMySubClass(){trace(Pi:,PI);//正确trace(r:,r);//正确trace(s:,s);//错误}}}我们发现这个类跟我们之前写的类的区别是多了‖extends‖这个一个关键字,这个关键字的作用就是说明,我们现在的这个类MySubClass是继承MyClass这个类的,继承之后我们就可以使用MyClass这个类里的变量和方法了,这样就达到代码重用的目的,比如说我们现在要写关于若干个球的类,有足球\篮球\排球等等,那么我们可以先找出这些的共性,先写一个球的类,然后再继承这个球的类写出若干个球的类,那么相同的东西就写在球的类中了,这个达到了代码重用;可以看到,PI,r,s是在MyClass这个类中定义的变量,那么由于MySubClass继承了MyClass,所以MySubClass也能使用这些变量了,但代码前两个我写的正确,后一个写的错误码是什么意思了,回忆下上一节学到的‖属性关键字‖,public和protected,在子类中是可以使用的,private是不行的,所以这里PI和r是可以使用的,s不能用.并且子类在构造的时候也会执行基类的构造方法,我们改一下FLA文件的代码:importnet.smilecn.MySubClass;varmySubClass:MySubClass=newMySubClass();mySubClass.r=3;在输出面板会输出:这个我写的第一个类Pi:3.1415926r:3注意:标有错误的那句代码要去掉,不然会报错.下节继续讲解继承.(编辑:非熊)-类的继承二当前位置:主页AS入门作者:arrowyoung发表于:2009-08-29Tag:菜鸟教程继承在上节中,我们介绍到了继承,继承在我们的实际应用中是用的比较多的一种方式。上节的继承是继承我们自己定义的类,如果要用到影片和类关联起来,我们可能会更多的去继承AS3中已有的类——Sprite和MovieClip;MovieClip这个类我们在2.0中就经常用到,就是影片剪辑,Sprite是什么了,其实就是一个没有帧的MovieClip,在没有动画的情况下我们会更多的使用Sprite,来看一段代码:packagenet.smilecn{importflash.display.Sprite;publicclassMySpriteextendsSprite{publicfunctionMySprite(){graphics.beginFill(0xFFCC00);graphics.drawCircle(40,40,40);}}}现在我们建立一个MySprite的类(注意保存的AS文件名一定要跟类名一样),因为它是继承的Sprite类,所以我们可以使用graphics来画图,这里我们画了一个圆。要使用这个类,我们同样要在帧上加一些代码:importnet.smilecn.MySprite;varmySprite:MySprite=newMySprite();addChild(mySprite);mySprite.x=100;mySprite.y=100;这里首先我们还是建一个实例,名字叫做mySprite,接下来我们用到了这句:addChild(mySprite);addChild相当于2.0里面把库中的元件载入到场景中,用了addChild后我们画的那个圆就显示在场景中了,与之对应的是removeChild,是从场景中删除接下来mySprite.x=100;mySprite.y=100;是设置坐标位置,因为是继承的Sprite,因为Sprite有x、y属性,所以MySprite也有了(注意x,y相当于2.0里面的_x和_y)上面的代码MySprite是用代码画的一个图形,有很多图形我们不可能都用代码去画,这样就失去FLASH的主要功能了,我们还可以把库中的元件链接到MySprite这个类中。我们新建一个MC,在库中在这个MC上点右键,点链接,会出现一个对话框,将―为ActionScript导出‖打上勾,在上面类的后面填上要链接的类,这里我们填上:net.smilecn.MySprite;基类那里我们填上:flash.display.Sprite然后再发布看看,会发现不仅有刚才画的圆,我们在刚才的那个MC里画任何东西都会在里面,这样就做到了元件和类的链接。在FLASHCS3中还加入了一个文档类(documentclass)的概念,使用文档类后,我们刚才写帧上面的代码就不用了,直接写在文档类里面,文档类就相当于第一帧的位置,这样我们就不用在FLA文件里写代码了,所有代码都写在AS文件里,达到了界面和代码的分离。现在在建立一个类,MainForm.as:packagenet.smilecn{importflash.display.Sprite;im
本文标题:ActionScript3.0从零基础学习类
链接地址:https://www.777doc.com/doc-5515474 .html