Flash As 3.0 中的导入类包问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 05:38:51
package {
import flash.display.Sprite;
public class testperson extends Sprite {
public function testperson() {
new son();
}
}
}
class father {
private var money:int=10000;
public var car:String="BaoMa";
private function work():void {
trace("working...");
}
}
class son extends father {
public var bike:String="Amini";
private function work():void {
trace("Studying");
}
function son() {
trace(bike);
trace(car);
work();
}
}
这是我看教程的时候写的一段程序 我不明白的是
1、为什么father类和son类要写再包外面-就是package{}的外面?
2、起初我没有导入类包,用flash cs3运行的时候提示有错误: 5000: 类 'testperson' 必须为 'flash.display.MovieClip' 的子类,因为它链接到该类型的库元件。然后我导入了MovieClip类-import flash.display.MovieClip; 让我写的testperson类继承了它,运行成功了,但我不知道我写的类到底用到了MovieClip类的什么属性或方法?
3、之后我试探着将导入的MovieClip类改为了Sprite类 结果也运行成功了,我很纳闷!我在好多教程实例中都看到了Sprite

1:father类和son类就是传说中的包外类,他们拥有最高的安全级别。比private还要高。也就是说只有你这个.as文件可以使用他们,别的任何方法都不能继承和使用他们。这样做可能是处于安全方面的考虑,也可能是为了书写方便把几个类写在一起

2:5000: 类 'testperson' 必须为 'flash.display.MovieClip' 的子类,因为它链接到该类型的库元件。
flash cs3会报这样错的原因可能和你的一个元件什么的链接到这个类有关系,因为flash cs3里处理的基本上都是MovieClip,所以只要是跟元件有关系的,这个类一般是必须被导入的。

3:准确的说,MovieClip类就是添加了 时间线的Sprite类。
Sprite类拥有MovieClip类的除了时间线外所有的属性和方法,是个最轻量级的容器类。除非必须有时间轴的元件,现在一般提倡用Sprite。它也可以接受鼠标事件等等,而且它占系统非常小,是个很好的东西。

4:因为你写的是类文件,而不是在flash cs3里做的元件,所以根本不用时间轴。用MovieClip类和Sprite都是可以的,但用Sprite更节省系统。

基本上就是这些,如果还有问题给我留言,希望能对你有所帮助