学学习网 手机版

学学习网

学习路径: 学习首页 > 应用开发 > AS3 >

第一节 AS3从零基础学习类

设置字体:
----------------------------------

一个简单的类

先写一个简单的类,了解一下类的结构:
package{
      public class MyClass{
          public function MyClass(){
          }
      }
}
 
这里是一个类的简单结构,package是包的意思。假设现在项目存放在d:\exam这个文件夹,那么这个类直接保存在d:\exam中,取名叫MyClass.as (注意:类的文件名应该跟类名需一样)。如果代码写成这样:
package net.smilecn{
      public class MyClass{
          public function MyClass(){
          }
      }
}
 
那么MyClass.as就应该放在d:\exam\net\smilecn这个路径下面。其中:
  • public class MyClass:表示要创建的这个类的名字是MyClass(类名可以任意取,习惯以大写开头)。
  • public function MyClass(){}: funciton代表一个方法名(可以说是函数),跟类名相同的方法,称为构造函数,就是这个类被实例化时执行的函数。
现在把代码改成:
package net.smilecn{
      public class MyClass{
          public function MyClass(){
              trace("这是写的第一个类");
          }
      }
}
在d:\exam下建立一个FLA文件,在第一帧写如下代码:
import net.smilecn.MyClass;
var myClass:MyClass = new MyClass();
 
那么在输出面板里就会输出“这是写的第一个类”。其中:
  • import net.smilecn.MyClass:导入写的类(类在使用前要导入net.smilecn是包名,MyClass是类名)。
  • var myClass:MyClass = new MyClass(): 实例化MyClass这个类(实例化的时候会执行构造函数,那么就会执行trace这句代码)。
 

成员常量、变量和方法

首先看一段代码:
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是属性关键字。在ActionScript 3.0中属性关键字有这样几个:
  • public:指定类、变量、常量或方法可用于任何调用者。
  • private:指定变量、常量或方法仅可供声明或定义它的类使用。
  • protected:指定变量、常量、方法或命名空间只可用于定义它的类及该类的任何子类。
  • internal:指定类、变量、常量或函数可用于同一包中的任何调用者。
下面主要说明public、private这两个属性关键字。从字面上理解public是公共的意思,说简单点就是任何地方都可以调用;private是私有的意思,就是说只有这个类中才可以调用。举例说明,在前面用的FLA文件中的第一帧加上这个的代码:
import net.smilecn.MyClass; 
var myClass:MyClass = new MyClass(); 
myClass.r = 3; //正确
myClass.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;
----------------------------------
  • 学学习
  • 需帮助 请留言
课程列表
重点难点
赞助链接