AS3中的类定义

3 views
Skip to first unread message

pawaca

unread,
Oct 30, 2005, 10:30:17 PM10/30/05
to Flash Platform
我这段日子写 as3 得出的一些结论,欢迎指正和补充:

1.任何 class 都不允许 protected 修饰。

2.在作为 application 的 as 文件中可以定义多个
public/private 类,其他 as 文件中只允许一个 public class
,其他类都只能是 private (internal
的不行),不过相互之间可以存在继承关系,但都不可以相互访问
protected 和 private 方法。

3.不允许嵌套实例 class,只可以嵌套静态
class,不过静态的嵌套类可以访问外层类的 protected 和
private 方法,但嵌套的静态 class 本身却无法被其他
class 继承(即使是 public的静态 class 也不行)。

还有一些代码执行上的小地方:

1.在类中可以不加任何修饰符调用语句,均会被视为静态初始化时调用,比如:
initImage();
private static function initImage():Void{}
是合法的,不过我还是建议写成:
static
{
initImage();
}
private static function initImage():Void{}
这样可以防止以后 as3
支持实例内的方法调用会引起的兼容问题。

2.静态 class
所继承的超类引用都要按文法顺序,比如这样做会引起运行时抱错:

public class PublicClass
{
private static InnerPrivateClass extends PrivateClass
{
}
}

private class PrivateClass
{
}

要写成:
private class PrivateClass
{
}

publicclass PublicClass
{
private static InnerPrivateClass extends PrivateClass
{
}
}

Reply all
Reply to author
Forward
0 new messages