actionscript-3 - 访问 protected 或私有(private)属性(property)

标签 actionscript-3 actionscript private protected private-members

在 ActionScript 3 中有一种方法(hack - 可能通过方括号,可能通过克隆一个对象,可能通过原型(prototype),可能通过命名空间,...)改变私有(private)或 protected 类(class)成员?

例如,如果我有一个由 someLibrary.swc 传递的 IconToast 类,并且我知道它有一个

    protected var windowOptions:WindowOptions;

我能以某种方式改变它吗?我已经尝试了很多东西,例如:

        var errorToast:IconToast = new IconToast();
        errorToast.addButton("Dismiss");
        errorToast.message = "Error when connecting";
        errorToast['windowOptions'].timeout = 10 * 1000;
        errorToast.show();

(给我运行时错误ReferenceError: Error #1069: Property windowOptions not found on IconToast and there is no default value)。

最佳答案

通过扩展基类并提供对私有(private)/ protected 方法/属性等的公共(public)访问权限来实现这一点

public class MyIconToast extends IconToast
{
    public function getWindowOptions():WindowOptions
    {
        return windowOptions;//here you can access protected (not private though:);
    }
}

对于私有(private)可能不可能,但在某种程度上类似于上面的解决方案,它可以完成

最好的问候

关于actionscript-3 - 访问 protected 或私有(private)属性(property),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11119872/

相关文章:

c# - AS3 客户端套接字无法连接到本地网络服务器

actionscript-3 - 数学 - 沿直线每隔一段时间获取 x 和 y 坐标

java - 在没有编译错误的情况下更改对方法的访问

c++ - 在 C++ 中使用私有(private)构造函数进行子类化

javascript - 使用 flash/AS3 读取第一方 cookie

actionscript-3 - 在运行时在 SWF 中记录函数调用的方法?

debugging - 为什么 Firefox 不会在 Ubuntu 中跟踪到 flashlog.txt?

sql - 优化保存到sqlite数据库?

javascript - 如何在 Flash 10 "without"用户交互中打开文件对话框

java - 私有(private)静态成员 - 内存使用