gpt4 book ai didi

javascript - Flex/AIR 调用 Javascript 函数

转载 作者:行者123 更新时间:2023-11-28 10:22:32 25 4
gpt4 key购买 nike

我在从 AIR/Flex 应用程序调用 javascript 函数时遇到问题。在 Web 应用程序中,使用 externallInterface 很容易做到这一点,但在 native 应用程序中这是一个问题。我的 AIR 应用程序类似于这样......

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
initialize="init()" ... >


<mx:Script>
<![CDATA[

private function init():void
{
myHTML.addEventListener(Event.HTML_DOM_INITIALIZE,DOMInit);
myHTML.location="myAIRHTML.html";

}

private function DOMInit(e:Event):void{
myHTML.htmlLoader.window.inputFunction = testInputFunction;
}
private function testInputFunction(so:String):void{
//some code ......
}

public function someFunction(e:AIREvent):void{
myHTML.htmlLoader.window.outputFunction(e.param);
}

_]]>
</mx:Script>

<mx:HTML id="myHTML" width="5" height="5" visible="true" />

</mx:WindowedApplication>

myAIRHTML.html 是

<html>      
<head>
<script language="Javascript">


var interface = {};

function outputFunction(param){
var childInterface = document.getElementById("mySandbox").childSandboxBridge;

childInterface.remoteFunction(param);
}


interface.inputFunction = function(someData){
testInputFunction(someData);
}
function initBridge(){
document.getElementById("mySandbox").parentSandboxBridge = interface;
}
</script>
</head>
<body>
<iframe id="mySandbox"
src="js.html"
sandboxRoot="http://remote.example.com/js/"
documentRoot="app:/myAIRSandbox/"
ondominitialize="initBridge()">
</iframe>
</body>
</html>

而 js.html 是

<html>          
<head>
<script language="Javascript" src="http://www/otherexample.com/other.js"></script>

<script language="Javascript" >

var interface = {};

interface.remoteFunction = function(st){
alert("st");
callFunctionInOtherJS(st);
}


window.childSandboxBridge = interface;

var someObject = {};

someObject.SomeFunction = function(someParam){
window.parentSandboxBridge.inputFunction(someParam);
}

</script>
</head>

<body ></body>
</html>

当我在 myAIRHTML.html 中调用“remoteFunction”时,会抛出“TypeError:未定义值”。我错过了什么重要的事情吗?有人可以帮忙吗?重要的是我忘记了 documentRoot - 我不在其他地方使用这个名称......感谢所有回复

最佳答案

如果我明白这是你的错误,我似乎有点困惑:

如果你定义这个

myHTML.htmlLoader.window.inputFunction = testInputFunction;

myAIRHTML.html 中的 js 无法调用 testInputFunction(someData);但是 inputFunction(someData) 因为您将 AS3 函数 testInputFunction 传递给了名为 inputFunction 的变量

希望这有帮助

关于javascript - Flex/AIR 调用 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5221758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com