javascript - 如何弃用 flash/flex 公开的 javascript 函数?

标签 javascript flash apache-flex actionscript externalinterface

我们开发了一个 Flex 组件,现在多个 Web 应用程序都在使用它。 我们发现一些回调是旧的并且它们有错误的参数。 例如,当它们用于设置某些参数时,它们采用一个对象,而当它们获取相同的参数时,它们使用另一个对象。 我们希望使这些函数在设置和获取参数时保持一致。 因此,我们考虑开始开发新的 getter 和 setter,并使用新名称和正确的参数。 无论如何,由于该组件被许多其他应用程序使用,我们无法重命名回调,也无法更改其实现,因此其他 Web 应用程序可能会出现问题。 因此,我们想知道是否有某种方法可以使 Flash 暴露的回调被弃用,以便使用这些方法的人会看到一些警告,并开始用未弃用的版本替换。 预先感谢您的回答!

最佳答案

一旦是 API,就永远是 API。

您不能只是从 API 中删除内容,否则当前使用这些命令的应用程序将会失败。只需添加新的替换 API 并保留旧的 API。在文档中声明旧的命令已被弃用,并且有一个更好的命令。

这方面的一个例子是 jQuery 的 live()delegate(),它们被 on() 取代。尽管已弃用,live()delegate() 仍然存在于 1.7 上,以适应旧 API,特别是对于那些升级了库但使用过时且未维护的插件的人。


你也可以这样做。您可以为旧 API 展示相同的接口(interface),但在其底层,它使用新的 API 实现,但进行了一些修改。这样,您就不会重复您的代码。

例如,让我们以 jQuery delegate()live()on() 为例。这些不是这些方法的实际代码,但我追求的是弃用的概念(除了 delegate()live() 之外,我想不出其他弃用的示例) on())。

//the three have different set-ups
.live(event,callback);
.delegate(selector,event,callback);
.on(event,selector,callback);

//to avoid multiple underlying implementations
//you can "map" the old API to use the new API's implementation
//while maintaining the old interface and functionality
live = function(event,callback){
    $(document).on(event,callback);
}
delegate = function(selector,event,callback){
    $(this).on(event,selector,callback);
}

//the new implementation as used by on
on = function(event,selector,callback){
    //implementation
}

关于javascript - 如何弃用 flash/flex 公开的 javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10700625/

相关文章:

javascript - 在 sails.js 中使用 EJS 模板

javascript - 防止径向渐变改变形状和大小

javascript - 运行查询后自定义弹出消息

actionscript-3 - 在浏览器关闭或更改页面(AS3)上通知Flash Player

apache-flex - 如何使用 Flexmojos 设置主题?

javascript - 如何将js文件捆绑在 "dist"文件夹(Angular 7)中?

apache-flex - 我可以获得 Flash Player 的调试符号吗?或任何其他方式来获得对闪存的支持?

Flash/ActionScript 3 : Load . FLV 文件转换为 MovieClip 并开始播放该 FLV 文件

ios - 空气原生扩展 : iOS packaged dependencies (Firebase)

android - 学习 Flex 或 ActionScript 有多容易,哪个更好?