0

我想知道是否可以从动作脚本中调用 ExtJS 函数?
例如,我们在 ExtJS 上编写了以下代码:

Ext.define('utils', {
    singleton : true,
    alert : function (message) {
            Ext.MessageBox.alert(Ext.locale.error, message);
    }
});  

可以从动作脚本中调用它吗?我知道可以使用 调用纯 java 脚本函数ExternalInterface(),但它不适合我。

在此先感谢您的帮助!

4

2 回答 2

1

我不知道 Extjs,但文档指出Application该类使用您的应用程序名称设置了一个全局变量。如果您向该类添加公共方法,您应该能够使用ExternalInterface(请参阅文档)从 Flash 调用它,这是 Flash 和 JavaScript 之间通信的标准方法。

分机:

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
    }
});

动作脚本:

ExternalInterface.call('myApp.alert', 'Hello JavaScript. Love from Flash');   
于 2013-05-20T13:22:36.640 回答
1

我不详细了解 ExternalInterface 方法,但使用 Ext.define 您只需使用给定方法定义一个 javascript 对象(因为它是一个单例)。所以在javascript中你可以简单地调用

utils.alert('Hello World');

那么是否可以使用以下简单的调用

ExternalInterface.call('utils.alert', 'Hello World');
于 2013-05-20T21:15:16.323 回答