从ActionScript中的EventListener返回值

时间:2012-08-18 17:19:56

标签: flash actionscript event-listener

我想从HTML执行ActionScript函数并将值返回给HTML。但是flash中的函数需要addEventListener。所以我不知道如何返回值,因为main-function比EventListener-function更快完成。显然事件函数除了void之外没有能力返回一些东西,但也许有一些技巧?

1 个答案:

答案 0 :(得分:1)

假设您不需要立即返回值以使 javascript 正常工作,您可以轮询闪存,直到它准备就绪,然后读取返回值。

flash.execute();
var checkInterval = setInterval(function() {
    if (flash.isReady()) {
        clearInterval(checkInterval);
        var returnValue = flash.getReturnValue();
    }
}, 100);

在flash中,execute()将“ready”布尔值设置为false(可以通过isReady()从javascript读取)然后启动异步操作。一旦完成,flash就会存储返回值,该值可以通过getReturnValue()从javascript中读取,最后将ready boolean更改为true。

这假定您不需要调用parallell执行命令。在这种情况下,您可以为每个执行提供一个id,并将其发送到execute(),isReady()和getReturnValue(),并让flash通过id分隔内部异步调用来处理并行请求。