在 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/