如何破解Flex中的私有静态字段?

时间:2009-06-06 16:49:09

标签: flex actionscript-3 reflection

有没有办法改变外星人阶级的私人静态领域?

例如:

package mx.managers {
   public class TooltipManager ... {
        private static var _impl:IToolTipManager2; // <- assign my own value here
        ...
   }
}

在Java中,可以使用Reflection API来完成它。 Flex怎么样?

2 个答案:

答案 0 :(得分:4)

不,这是不可能的。

如果您正在考虑更改TooltipManager的实现,请查看Flex SDK中的Singleton类。在应用程序初始化之前,您需要创建一个自定义实现并通过Singleton类注册它。最好是覆盖应用程序预加载器并在那里进行注册。

答案 1 :(得分:0)

好吧,如果您觉得自己可以承担额外的责任,可以通过使用相同的包将源复制到您自己的源代码树中来修补该类,并应用必要的修改。这样,flex编译器将使用您的实现而不是SDK实现。

这种技术有时被用作修复无法修复的问题的最后手段。缺点包括依赖于您编辑的类在相同或其他类中的向前兼容性和非预期副作用等问题。

相关问题