如何在 Flex 中猴子修补或覆盖 SWC 类?
我正在使用 Axiis 项目中的 SWC 来显示我正在处理的项目中的可视化效果。我遇到了一个错误,重新编译库 SWC 将是一个简单的解决方案,但我只能使用有错误的版本的 SWC。
我有 Axiis 源代码并编译了一个修复了错误的版本,尽管由于客户端版本限制我不允许使用它。
有谁知道如何在我的代码中使用更新的 Actionscript 类/文件,以便它覆盖 swc 类?
I'm using a swc from the Axiis project to display visualizations in a project I'm working on. I've run into a bug where re-compiling the library swc would be an easy solution, but I can only use the buggy version of the swc.
I have the Axiis source and compiled a version with the bug fixed, though I'm not allowed to use it because of client version restrictions.
Does anyone know how I can use the updated Actionscript class/file in my code so it overrides the swc class?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不确定是否允许您执行以下操作:将包含您的修复的类放在主应用程序的源路径中。如果您确保包名和类名与原始类完全匹配,编译器将选择该类而不是库中的类。当我们想要修补 Flex 框架而不必自己编译库时,我们经常这样做。
另一个想法可能是使用 AS3Commons-Bytecode 创建代理您想要修复的类,然后让您的代码在代理而不是原始实例上工作。这是纯粹的运行时修复。它有点更高级,只有当您能够以某种方式获取代理来替换您需要修复的类的原始实例时,它才会起作用。
I'm not sure if you are allowed to do the following: put the class with your fix in the source path of your main application. If you make sure the package and class names match exactly with the original class, the compiler will pick this class up instead of the one in the library. We do this often when we want to patch the Flex framework without having to compile the libraries ourselves.
Another idea might be to use AS3Commons-Bytecode to create a proxy of the class you want to fix and then have your code work on the proxy instead of the original instance. This is a pure runtime fix. It's a bit more advanced and it will only work if you can somehow get the proxy to replace the original instance of the class you need to fix.