[ActionScript 3]一步一步学ActionScript 3.0(二)
接着上一节的内容,上一节中我们建了一个简单的类,讲解了包的概念,构造函数的概念,接下来再看看成员常、变量和成员函数的概念,再来看一段代码:
- package net.smilecn{
- public class MyClass{
- public const PI:Number = 3.1415926;
- public var r:Number;
- private var s:Number;
- public function MyClass(){
- trace("这个我写的第一个类");
- }
- }
这里我们在以前的基础上增加了几句代码,const是定义常量,var是定义变量,所谓的常量就是永远不能改变的量,变量就是能够改变的量;public、private是属性关键字,在AS3中属性关键字有这样几个:
public:指定类、变量、常量或方法可用于任何调用者
private:指定变量、常量或方法仅可供声明或定义它的类使用
protected:指定变量、常量、方法或命名空间只可用于定义它的类及该类的任何子类
internal:指定类、变量、常量或函数可用于同一包中的任何调用者
这里我们先重点看一下public、private这两个属性关键字,从字面上理解public是公共的意思,说简单点就是任何地方都可以调用,private是私有的意思,就是说只有这个类中才可以调用,我们用一个例子做一个简单的说明,还是在上一节中我们用的FLA文件中的第一帧加上这个的代码:
- import net.smilecn.MyClass;
- var myClass:MyClass = new MyClass();
- myClass.r = 3;//正确
- myClss.s = 18;//错误
可以看到因为r声明为public,所以我们在外部调用是正确的,s声明为private,所以不直接在外部访问s这个变量,这就是public和private的区别,那我们要在外部改变s的值应该怎么做呢,我们可以这样做,在来修改MyClass类:
- package net.smilecn{
- public class MyClass{
- public const PI:Number = 3.1415926;
- public var r:Number;
- private var s:Number;
- public function MyClass(){
- trace("这个我写的第一个类");
- }
- public function setSValue(value:Number):void{
- s = value;
- }
- }
- }
这样我们通过一个公共方法(方法就是函数的意思)设置了s的值,在FLA文件中这样调用:
- myClass.setSValue(18);
就可以了,当然跟其它语言一样,我们也可以用get和set方法来读取或写入private变量的值:
- package net.smilecn{
- public class MyClass{
- public const PI:Number = 3.1415926;
- public var r:Number;
- private var s:Number;
- public function MyClass(){
- trace("这个我写的第一个类");
- }
- public function set sValue(value:Number):void{
- s = value;
- }
- public function get sValue():Number{
- return s;
- }
- }
- }
我们在调用的时候就可以用这样的语句了:
- myClass.sValue =18;(当使用过set后可以这样操作)
- var a = myClass.sValue;(当使用过get后可以这样操作)
下节继续!
(本教程如需转载请注明出处!)
遇到问题了 请赐教 QQ 89276485