加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flash ActionScript (20)AS3.0 包与类的创建和引用详解

发布时间:2020-12-15 06:18:04 所属栏目:百科 来源:网络整理
导读:前提: 如果有任何一门程序语言(哪怕不是面对对象的编程语言)的基础,就可以更加轻松的理解Actionscript3.0语言规则。 一 概念实质 包(package)实质上是一个文件夹,包(文件夹)内可以包含多级文件夹(包)。 例如: MyLib包下有一个Tools文件夹,则Tools文件
前提:
如果有任何一门程序语言(哪怕不是面对对象的编程语言)的基础,就可以更加轻松的理解Actionscript3.0语言规则。
一 概念实质
包(package)实质上是一个文件夹,包(文件夹)内可以包含多级文件夹(包)。
例如:
MyLib包下有一个Tools文件夹,则Tools文件夹就是 MyLib 的子包,引用格式为 MyLib.Tools
类(class)一个单独的as文件,类是用来描述一个对象(面对对象的编程模式)的,Adobe建议每个类就是一个单独的文件,文件名就是类名。例如:
car.as 就是一个 car类。
例如:
MyLib包下有一个car类,引用car类的格式为
MyLib.car
如果还有个类 fly.as 在 Tools 包( 文件夹)下,则引用格式为
MyLib.Tools.fly
二 创建方法
包:
包的实质是文件夹,所以直接在 *.fla 文件所在的目录创建 以包命名的文件夹即可。例如想建立一个名为 MyLib 的包,就新建文件夹,然后将文件夹重命名为 MyLib 即可。
子包:
如果 MyLib 包内仍然需要对as文件有所区别的话,可以继续建立包,即建立子文件夹。例如想在 MyLib 包内建立一个 Tools 包,则在MyLib文件夹内建立新文件夹, 重命名为 Tools 即可。
类:
类即 *.as 文件, 可单独创建, 也可以创建在包内。 例如想创建一个 描述汽车(car)的类,只需要建立一个 car.as 文件即可。
?
三 类的写法
因为包的实质是文件夹,所以建立文件夹,就建立了包。
1) 不在任何包下
如果一个类(假设类文件名为 bike.as )不在任何包下,那么就无需声明任何包或类标记,因为在编译的时候会自动为该文件创建类实例。用户只需要在该文件下直接定义或写方法即可,例如:
var word:String = "I am bike;";??
function Say():String? {?
return word;?
}?
注意:
不要在方法或变量前加 public 修饰符(否则编译器错误:1114: public 属性只能在包的内部使用。),因为 bike 类不在任何包(文件夹)内,类内的所有方法和变量都默认就是 public(公开的)。
2) 在顶级包内
如果一个类( 假设类文件名为 car.as )在 包 MyLib 下,那么就需要定义一个包标记,格式如下:
package MyLib{ // 声明包,表示该类是在 MyLib 包下定义的
public class car {
// 前面要声明该类为 public(公开的),否则在包外无法被调用?
private var word:String = "I am a car;";?
public function Say():String {?
return word;?
??? }?
? }??
}?
3) 在一个子包内
如果一个类( 假设类文件名为 fly.as),格式如下:
package MyLib.Tools{
// 声明包,表示该类是在 MyLib/Tools/ 路径下定义的?
public class fly {?
private static var word:String = "I am fly;";?
public static function Say():String {?
return word;?
}?
}?
} 注意:
如果包的层级越多,那在package 声明的级别也就应该越具体。
四 用法
1) 包
包(假设名为:MyLib)包含了一个或多个类文件(*.as),在fla文件中,必须先导入(import)包才可以使用,包的位置必须要和 *.fla 文件在同一个文件夹内(否则编译器错误:1172: 找不到定义 MyLib)。
导入代码为: import MyLib.*;
导入子包代码为: import MyLib.Tools.*;
假设在 MyLib 包内有两个类,分别为 car.as 和 jeep.as,如果只想使用 car类,那么
导入代码为:
import MyLib.car;
假设只想使用子包 Tools 内的 fly 类,那么
导入子包代码为:
import MyLib.Tools.fly;
2) 类
如果类( 假设名为:bike.as )不在任何包下,那么
引用代码为:
include "bike.as";
P.S.
as类文件在哪个地方就写哪个路径。例如有一个类文件( ship.as )在 D盘下,那么
引用代码为:
inclide "d:/ship.as";
如果类( 假设名为:car.as )在包 MyLib 下,那么不用使用 include 声明,直接导入包即可。例如,要创建 car 的实例代码如下:
import MyLib.*;?
var c:car = new car();?
trace( c.Say() );
搞清楚包和类的关系后,就可以灵活的把 as 代码写在 *.fla 文件外部了
创建:
package Test? {????
public class FirstTest?{?????
public function tet(){??????
var t:String ="道常无为";??????
return t;?????
}????
}?
}
引用:
import Test.FirstTest;?
var a:FirstTest=new FirstTest();?
trace(a.tet());??

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读