从另一个 Class 访问受保护的函数 - Flash

Accessing Protected Functions from Another Class - Flash

我有两个文件,Main.asBook.as

Book.as如下:

public class Book extends sprite
{
  protected function addPage():void
  {
    var title:Sprite = new Sprite();
    addChild(title);
  }
}

我正在尝试创建 Book 的实例,并最终将其添加到舞台上。我如何访问这个受保护的功能? (我无法更改 Book.as,因为它是项目的一部分)。

我正在 Main.as 中执行以下操作:

var newBook:Book = new Book();
newBook.addPage();

基本上,我如何访问 addPage?我正在使用 extends Sprite 作为主 class。

受保护的函数只能从 class 或扩展它的 class 调用

尽管如此 class 看,作为一个受保护的函数是毫无用处的。要么找到你需要的人public,要么创建一些其他调用它的函数(例如在构造函数中)。

如果这是您绝对需要在不更改的情况下执行的操作 Book.as,那么在我看来,这是您唯一的选择:

创建 Book 的子class。例如:

public class MyBook extends Book {
    public function addMe():void {
        addPage();
    }
}

现在您可以:

var newBook:MyBook = new MyBook();
newBook.addMe();