手机版

flex和js通信和互调安排(一)

时间:2021-10-04 来源:互联网 编辑:宝哥软件园 浏览:

作为本次迭代中上面发布的任务之一:你需要用flex调用js来控制用ajax制作的3D球,任务落在我身上,我刚开始学习flex,以前用flash玩游戏,所以很快就把语法过了一遍,开始在网上搜索flex和js相互调用的例子。我也想避免遗忘,和你交流。我用的是flash builder 4.6,不熟悉。1.flex调用js。创建一个新的FlexToJs项目,如图所示:

事实上,Felx用来调用js的方法是ExternalInterface.call()。在主界面增加一个按钮,注册一个点击事件,如图:

SayHellWorld是一个字符串,它对应于我们调用的js文件中的方法,并且具有相同的名称。params是传递的参数字符串。接下来,我们使用WebStorm创建一个HellWorld.js文件(代码很简单,可以用文本编辑器快速创建)。代码如下:

将这个js文件放在FlexToJs/html-template下,这是运行时代码的存储地址。如果需要调试,需要在FlexToJs/bin-debug下放一个副本,如图:

向index.template.html添加脚本类型=' text/JavaScript ' src=' http : hello world . js '/意味着添加对js的引用。这是个好主意,所以不需要截图!在FlexToJs.html的同一个地方,保存时会自动添加这句话。感兴趣的人可以研究他们的关系。接下来,运行FlexToJs.mxml当您单击按钮时,您将通过我们添加引用的接口调用Js文件中的方法sayHelloWorld。最后弹出警告,如图:

我不知道这台电脑为什么在IE下工作,但是在chrome下就不行了,按钮也出不来了。接下来,让我们优化代码。如果不需要传递上面的参数,就不会在js文件中使用,但是flex的参数还是需要编写的,否则有时候会出现错误。如果我们需要一个返回值呢?需要传递非字符串参数吗?让我们一起做出改变吧!将FlexToJs.mxml的内部更改如下:

我需要给按钮添加一个id,主要用于方面使用。很容易理解,我使用了一个数组传递给js,并返回了一个新数组来更改按钮的显示。而之前的HelloWorld.js变成了:

这很容易理解,所以我改变了数组的内容。最后的结果是:“你好yy!你好xx!你好zz!”返回值和参数传递完成,基本可以满足大家的需求。但是,这些参数只能满足常用的String、int等。如果你自己写类,想通过,就得两边写解析函数,这里就不详细介绍了。你可以自己试试。其次,js调用flex。有些人可能会问,当我们调用js文件时该怎么办,js是否需要在某个时候调用flex中的方法?让我们来解决这个问题。继续使用上一个项目,直接修改。将FlexToJs.mxml替换为:

没有按钮,就没有必要了。注意在应用程序的末尾添加一个事件,初始化后调用initApp。这里的sayCallBack对应于js中的方法,并在这里监视它。当这个方法在js中被触发时,它会被转换成回调进行处理,最后在js中返回值到init。Js文件如下:

这里dou.sayCallBack调用flex中的字符串方法。最后,需要在文件index.template.html中添加一个按钮,如图所示:

这个按钮调用js中的init方法。术后效果:

而且参数和返回值都是可用的,所以要满足大家的需求!如果以后有时间写flex调用js控制2D地图和3D球的过程,需要用到超图的一些第三方控件!希望对大家有帮助。

版权声明:flex和js通信和互调安排(一)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。