首页 > ActionScript 3, 一步一步学ActionScript 3.0 > [ActionScript 3]一步一步学ActionScript 3.0(二)

[ActionScript 3]一步一步学ActionScript 3.0(二)

接着上一节的内容,上一节中我们建了一个简单的类,讲解了包的概念,构造函数的概念,接下来再看看成员常、变量和成员函数的概念,再来看一段代码:

  1. package net.smilecn{
  2.     public class MyClass{ 
  3.         public const PI:Number = 3.1415926;
  4.         public var r:Number;
  5.         private var s:Number;
  6.         public function MyClass(){
  7.             trace("这个我写的第一个类");
  8.         }
  9. }

这里我们在以前的基础上增加了几句代码,const是定义常量,var是定义变量,所谓的常量就是永远不能改变的量,变量就是能够改变的量;public、private是属性关键字,在AS3中属性关键字有这样几个:
public:指定类、变量、常量或方法可用于任何调用者
private:指定变量、常量或方法仅可供声明或定义它的类使用
protected:指定变量、常量、方法或命名空间只可用于定义它的类及该类的任何子类
internal:指定类、变量、常量或函数可用于同一包中的任何调用者

这里我们先重点看一下public、private这两个属性关键字,从字面上理解public是公共的意思,说简单点就是任何地方都可以调用,private是私有的意思,就是说只有这个类中才可以调用,我们用一个例子做一个简单的说明,还是在上一节中我们用的FLA文件中的第一帧加上这个的代码:

  1. import net.smilecn.MyClass;
  2. var myClass:MyClass = new MyClass();
  3. myClass.r = 3;//正确
  4. myClss.s = 18;//错误

可以看到因为r声明为public,所以我们在外部调用是正确的,s声明为private,所以不直接在外部访问s这个变量,这就是public和private的区别,那我们要在外部改变s的值应该怎么做呢,我们可以这样做,在来修改MyClass类:

  1. package net.smilecn{
  2.     public class MyClass{
  3.         public const PI:Number = 3.1415926;
  4.         public var r:Number;
  5.         private var s:Number;
  6.        
  7.         public function MyClass(){
  8.             trace("这个我写的第一个类");
  9.         }
  10.        
  11.         public function setSValue(value:Number):void{
  12.             s = value;
  13.         }
  14.     }  
  15. }

这样我们通过一个公共方法(方法就是函数的意思)设置了s的值,在FLA文件中这样调用:

  1. myClass.setSValue(18);

就可以了,当然跟其它语言一样,我们也可以用get和set方法来读取或写入private变量的值:

  1. package net.smilecn{ 
  2.     public class MyClass{ 
  3.         public const PI:Number = 3.1415926;
  4.         public var r:Number;
  5.         private var s:Number;
  6.        
  7.         public function MyClass(){
  8.             trace("这个我写的第一个类");
  9.         }
  10.        
  11.         public function set sValue(value:Number):void{
  12.             s = value;
  13.         }
  14.        
  15.         public function get sValue():Number{
  16.             return s;
  17.         }
  18.     } 
  19. }

我们在调用的时候就可以用这样的语句了:

  1. myClass.sValue =18;(当使用过set后可以这样操作)
  2.  
  3. var a = myClass.sValue;(当使用过get后可以这样操作)

下节继续!

(本教程如需转载请注明出处!)

  1. resun
    2009年12月7日16:34 | #1

    遇到问题了 请赐教 QQ 89276485

  1. 本文目前尚无任何 trackbacks 和 pingbacks.