2017-08-24 94 views
-1

我必须调用一个在回调函数中返回一些数据(我想要的)的javacript函数。现在我正在通过从JavaScript调用它将这些数据传回给Flex。如何等待从actionscript/flex调用的javascript函数?

但我想让flex以某种方式等待javascript函数来获取数据。我怎样才能做到这一点?

代码看起来是这样的:

这是我的Flex调用JavaScript的:

function myJavascriptFunctionThatReturnsCallback(uncomputedData){ 
    var SomeDataComputator= SomeDataComputator(); 
    SomeDataComputator.computeData(uncomputedData, function (computedData){ 
     // call the flex again from here 
     myFlashObject.computationCompleteHandler(computedData); 
}) 
} 

我想的是,delegateComputaionToJavascript

function delegateComputaionToJavascript(uncomputedData){ 
    externalInterface.call('myJavascriptFunctionThatReturnsCallback', uncomputedData); 

} 
function computationCompleteHandler(computedData){ 
    //goes ahead to process further 
    //like saving this data to DB in a server call 
} 

数据返回我的javascript函数flex中的函数不仅要调用javascript,还要等待myJavascriptFunctionT hatReturnsCallback完成执行,以便我可以在delegateComputaionToJavascript本身进行服务器调用。

+0

@Ivar它没有谈论任何地方的动作。 – user3694269

+0

您要求flex等待JavaScript函数有数据。这可以通过使用一个调用完成后调用flex的回调来解决。我不知道如何在回调函数中获取数据,因为您没有指定。 – Ivar

+0

@Ivar为简单起见,数据是在javascript本身计算的。由于需要一些时间,因此使用超时。这就是为什么我需要的数据来自回调。 – user3694269

回答

0

不能说有关弹性任何事情,因为我从来没有与它密切合作,但在纯AS3中,你可以从JavaScript得到返回值如下:

const returnValue: * = ExternalInterface.call(...); 

任何具体的解决方案将在很大程度上取决于您现有的码。

+0

添加示例代码。任何帮助表示赞赏。 – user3694269

+0

那么,你的js代码也是基于回调的。要么你把所有的东西做成异步的(即把它留在回调函数中),要么以同步的方式计算值并将其返回。 – Nbooo

相关问题