【游客模式】——注册会员,加入11RIA 闪客社区吧!一起见证Flash的再次辉煌……
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 雪原xy 于 2018-12-13 16:47 编辑
首先是文档类:[Actionscript3] 纯文本查看 复制代码
//文档类:.fla中没有对源路径进行设置,默认“.”,即当前目录。
package
{
import flash.display.Sprite;
//import class1包中的两个类:Class1、vi_c1
import class1.Class1;
import class1.vi_c1;
import Class2;//(导入)import 源路径中的Class2类,不需要加包名,直接就可以导入,其实同一级中的类不需要导入,也可以。
//import encapsulation.Class2;//试图(导入)import 源路径上一级目录(encapsulation)中的Class2类,编译器报错:1172: 找不到定义 pac_imp:Class2。
//若确实想要导入该类,就要在设置中添加一个源路径,把文件夹(encapsulation)设为源路径,但要在那个类的.as文件中的package后面加上encapsulation文件名。
//由于两个类名相同,在下面的实例化时,要使用全饰名才可以,否则恐怕就要考虑源路径的先后顺序了。
public class doc extends Sprite
{
var c1:Class1=new Class1();//创建一班的实例
var vc1:vi_c1=new vi_c1();//创建访问一班的实例
var c2:Class2=new Class2();//创建源路径上一级目录中的Class2类的实例
public function doc()
{
init();
// constructor code
}
function init()
{
//trace(c1.te)//由于一班中的属性是internal,所以访问出错:1178: 试图访问不可访问的属性
vc1.C1();
trace(c2.te);//用访问一班的方法来访问一班的属性,成功输出:我是一班的英语老师,赵老师
}
}
}
然后是四个位于不同包中的类,其中Class1和Vi_c1在同一个包中,一个Class2在源路径中,一个Class2在上一级目录中。
[Actionscript3] 纯文本查看 复制代码
package class1
{
import Class2;//在Vi_c1的类中导入上级一目录中的Class2类
public class vi_c1
{
var aa:Class1=new Class1();
//var c2:Class2=new Class2();
public function vi_c1()
{
// constructor code
}
//定义一个公开的方法C1,用来访问同一个包中的Class1中用internal定义的属性;
public function C1()
{
trace(aa.te);
//trace(c2.te);//在Vi_c1的类中导入上级一目录中的Class2类,编译时报错:1178: 试图访问不可访问的属性
//这说明import不能导入上一级目录中的类或包,import只能导入本级目录或下级目录中的包或类。
}
}
}
[Actionscript3] 纯文本查看 复制代码
//在源路径的同一级目录中定义一个Class2类,不需要加包名,而且文档类可以直接访问
package
{
public class Class2
{
var te:String = '我是二班的英语老师,张老师';
public function Class2()
{
// constructor code
}
}
}
[Actionscript3] 纯文本查看 复制代码 //在源路径的上一级目录(encapsulation)中定义一个Class2类
package encapsulation
{
public class Class2
{
public var te:String = '我是(encapsulation)文件夹中的二班的英语老师,李老师';
public function Class2()
{
// constructor code
}
}
}
[Actionscript3] 纯文本查看 复制代码 package class1
{
public class Class1
{
internal var te:String = '我是一班的英语老师,赵老师';
public function Class1()
{
// constructor code
}
}
}
|