分享好友 编程语言首页 频道列表

flex与js通信与彼此之间的互调整理(一)

flex  2015-06-26 11:570

由于这个迭代上面下发的任务中有一条:需要使用flex调用js来操控用ajax做的三维球,任务落在了我的身上,我也就才开始学习flex,以前用flash做过游戏,所以很快过了一遍语法就行了,开始网上查找flex和js之间互相调用的范例,这里整理一下也避免忘记,也和大家互相交流交流。

我用的是flash builder 4.6,也不熟悉。

一、flex调用js。

新建flex项目FlexToJs,如图所示:

flex与js通信与彼此之间的互调整理(一)

Felx调用js其实就是使用的方法ExternalInterface.call()。主界面添加一个按钮,并且注册一个点击事件,如图:

flex与js通信与彼此之间的互调整理(一)

SayHellWorld是字符串,对应我们调用的js文件里面的方法,名字一样,params是所传的参数字符串。

接下来我们使用WebStorm创建一个HellWorld.js文件(代码简单,用文本编辑器也可以快速创建),代码如下:

flex与js通信与彼此之间的互调整理(一)

将此js文件放在FlexToJs/html-template下,这是运行时代码的存放地址,如果需要调试,那么需要在FlexToJs/bin-debug下面也放一份,如图:

flex与js通信与彼此之间的互调整理(一)

在index.template.html里面加上一句<script type="text/javascript" src="HelloWorld.js"></script>,就是加一个js的引用,这个都会,不用截图了吧!在FlexToJs.html里面同样地方在你保存的时候会自动加上这句话,有兴趣的可以研究他们的关系。接下来运行FlexToJs.mxml,在点击按钮的时候会通过我们添加引用的界面去调用js文件里面的方法sayHelloWorld,最后弹出警告,如图:

flex与js通信与彼此之间的互调整理(一)

我这个电脑不知咋的,IE下可以,chrome下就是不行,按钮都出不来。

下面,我们来优化代码,上面如果不需要传递参数,你在js文件里面就不使用,但是flex的那个参数还是要写上,不然有些时候会出错误。

如果我们需要返回值呢?需要传递非字符串的参数呢?

下面我们就一起来改一改吧!

FlexToJs.mxml内部改为如下:

flex与js通信与彼此之间的互调整理(一)

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

flex与js通信与彼此之间的互调整理(一)

也很容易明白,就改变了一下数组里面的内容。最后结果为:“Hello yy!Hello xx!Hello zz!”

,返回值和传参都完成了,基本可以满足大家的需求了,不过这些参数只能满足常用的String、int等,如果是自己写的类想传递,那么你在两边都得写解析的函数了,这里就不做详细介绍了,大家可以自己尝试。

二、js调用flex。

有人可能会提出当我们调用了js文件,二如果js里面需要在某时候调用flex里面的方法如何办呢?下面我们就来解决这个问题。

继续使用刚才的项目,直接在上面做修改。将FlexToJs.mxml改为如下:

flex与js通信与彼此之间的互调整理(一)

去掉了按钮,不需要了,注意在Application最后添加了一个事件,在初始化完成后调用initApp,这里的sayCallBack对应js里面的方法,在这里监听,当在js里面触发调用此方法时会转化给callBack来处理,最后返回值给js里面的init。Js文件如下:

flex与js通信与彼此之间的互调整理(一)

这里dou.sayCallBack调用的就是flex里面的那个字符串方法。

最后在文件index.template.html里面需要添加一个按钮,如图:

flex与js通信与彼此之间的互调整理(一)

这个按钮调用js里面的init方法。运行后的效果:

flex与js通信与彼此之间的互调整理(一)

参数和返回值都有了,应该满足大家的需求了吧!后续如果有时间再把flex调用js控制出二维地图和三维球的过程写写,不过这些都需要使用超图的一些第三方控件了!希望对大家有所帮助。

查看更多关于【flex】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
vb的VSFlexGrid控件 vb msflexgrid
多行选中VSFlexGrid的SelectionMode = flexSelectionListBox,现在可以配合Ctrl进行多行选择循环取值用vsflexgrid.SelectedRows 可以得到你选择的行的总数量然后用循环可以得到具体的行中具体列的内容Dim Temp  As StringDim i As IntegerFor i =

0评论2023-02-09868

微信小程序(safair浏览器)flex布局中的坑
今天在用微信小程序做flex布局的时候遇到了一些问题。布局简单来说是这样的,最外层是一个flex布局属性为flex-direction:column的元素。里面有未设置height,并且flex-grow:1的子元素,然后在这子元素里,有一个孙子元素height:100%;html代码如下!DOCTYPE htm

0评论2023-02-09937

VB6-表格控件MSHFlexGrid 实用代码
在vb6中要显示数据虽然有datagrid、msflexgrid、mshflexgrid、vsflexgrid、True dbgrid7.0 可选,不过我在工作中用的最多的还是MSHFlexGrid,以下我会常分享一些使用这个控件的技巧、方法代码,保证拿了就可以用。 1、使用MSHFlexGrid的FormatString属性可以

0评论2023-02-09372

vb6如何将MSHFlexGrid控件中的内容导出为Excel
首先的是是准备工作需要引用 Microsoft Excel 11.0 Object Library需要添加控件Mircrosoft Hierarchical FlexGrid Control 6.0(SP4) (OLEDB)我们来看一下代码Private Sub cmdOut_Click()    Dim xlApp As Object    Dim xlBook As Object    Dim xlShee

0评论2023-02-09446

vb 6.0 msflexgrid 用法详解
问题一 msflexgrid 根据行数或列数的大小,滚动条的滚动块长度怎么改变,发现滚动条很不好用,很小

0评论2023-02-08304

MacromediaFlex标记语言简介

0评论2015-07-0198

flex是什么Flex介绍
Flex 是一个高效、免费的开源框架,可用于构建具有表现力的 Web 应用程序,这些应用程序利用 Adobe Flash Player和 Adobe AIR, 运行时跨浏览器、桌面和操作系统实现一致的部署

0评论2015-06-2669

Flex基于数据源的MenuTree实现代码
由外部参数flashvars指定数据源的文件位置或render链接,在源数据上加href和target属性来控制打开窗口,可自定义父节点和子节点图标,不设置采用系统默认,感兴趣的你可以了解下啊,或许对你有所帮助

0评论2015-06-26176

flex压缩图片exif信息(作者/相机)丢失问题解决
使用flex的jpegencoder对图片进行压缩的时候,exif信息会丢失这一点确实令人郁闷啊,此问题应当如何解决呢?经研究jpeg的文档,最终解决这个问题,晒出来与大家分享希望可以帮助到你们

0评论2015-06-26105

flextomcat端口被占用的问题分析及解决方法
在启动Tomcat,提示8080端口被占用了,该如何解决呢?本文整理了一些修改方法,感兴趣的朋友可以参考下,希望可以帮助到你

0评论2015-06-2678

flash报错捕获(CatchAllExceptioninFlash)
就是在全局任何地方产生的错误如果没有被捕获,都可以在捕获阶段和冒泡阶段被捕获,接下来为大家介绍一种可以捕捉所有错误的方法,感兴趣的你可不要错过了哈

0评论2015-06-2681

flex开发项目报错之404错误解决方案
最近两天被HttpStates404这个错误折腾的够呛,查了很多的文章都是大同小异,接下来为大家介绍下详细的解决方法,感兴趣的各位可以参考下哈,希望可以帮助到你

0评论2015-06-2695

Flex动态生成可编辑的DataGrid具体实现代码
DataGrid具有以下功能:表头是动态生成的、每行都是有序号的、每行都是可以编辑、插入、删除、修改,接下来为大家分享下Flex如何动态生成可编辑的DataGrid

0评论2015-06-2666

更多推荐