我想知道是否可以从动作脚本调用ExtJS函数?
例如,我们在ExtJS上编写了以下代码:
Ext.define('utils', {
singleton : true,
alert : function (message) {
Ext.MessageBox.alert(Ext.locale.error, message);
}
});
可以从动作脚本中调用吗?我知道可以使用ExternalInterface()
调用普通的java脚本函数,但它不适合我。
提前感谢您的帮助!
答案 0 :(得分:1)
我不知道Extjs,但是documentation表示Application
类设置了一个带有应用名称的全局变量。如果您向该类添加公共方法,则应该可以使用ExternalInterface
从Flash中调用它(请参阅docs),这是在Flash和JavaScript之间进行通信的标准方法。
<强> EXTJS:强>
Ext.application({
name: 'MyApp',
launch: function() {
Ext.create('Ext.container.Viewport', {
items: {
html: 'My App'
}
});
},
// Public method to receive external interface calls from Flash
alert: function(message) {
// Call alert method on utils
}
});
<强>的ActionScript:强>
ExternalInterface.call('myApp.alert', 'Hello JavaScript. Love from Flash');
答案 1 :(得分:1)
我不太详细了解ExternalInterface方法,但是使用Ext.define只需使用给定的方法定义一个javascript对象(因为它是一个单例)。所以在javascript中你可以简单地调用
utils.alert('Hello World');
所以不应该使用以下简单的调用
ExternalInterface.call('utils.alert', 'Hello World');