Flex+JavaScript交互框架完全解决方案(一)

2 篇文章 1 订阅
1 篇文章 0 订阅

    最近在做一个项目,GIS部分要求用Flex做,封装成接口供业务部分调用,业务部分用JAVA做。这样就需要一个Flex和JavaScript的交互工作。项目已接近尾声,交互方案也得到了验证,写点东西来总结一下,和大家分享分享,有兴趣的同学希望能一起交流分享
    首先交互方案解决了4个基本问题:
    1、Flex中如何获取HTML页面中的配置参数   
    2、Flex如何调用JavaScript中的方法
    3、JavaScript如何调用Flex中的方法
    4、JavaScript如何监听Flex中的事件

    一、
    问题1很简单,直接贴代码:
  

上面代码是HTMl中嵌入.swf文件的代码,红色方框内是传递的参数,Flex中读取的代码如下:

var parameters : Object= FlexGlobals.topLevelApplication.parameters;  

var ip:String= parameters.GisServerIP; 

实际应用中发现这样很不方便,就把配置信息都放在一个配置文件中了,又Flex自己去读。

二、

问题2也简单,JavaScript中写一个方法,Flex中直接调用就可以了,Flex中调用的代码如下:

ExternalInterface.call(“OnSWFLoad”,"传向js的参数,可以是object对象");

这样写只是技术走通了,使用起来并不方便,需要事先约定函数名称。实际应用中也没有没有这样写过,需要用到类似功能的地方都用其他方法代替了。

三、

问题3步骤稍复杂了一点在Flex中需要先公开一个函数名,然后JavaScript才能调用,Flex中代码如下:
ExternalInterface.addCallback("js中调用时的函数名称", "Flex中实际执行的函数名称");

在JavaScript中调用Flex代码就用对象名点函数名就OK了。当然为了方便管理我把所有公开的函数都放在了一个类中。

四、

问题4实际上是问题2和问题3方案的组合,为了方便期间把所有可以监听的事件类型都放在了一个OpenedEvents中,部分代码如下图

然后公开两个函数:

ExternalInterface.addCallback(OpenedFunctions.AddEventListener, AddEventListener);
ExternalInterface.addCallback(OpenedFunctions.RemoveEventListener, RemoveEventListener);

 private function AddEventListener(key:String = null, JSFunction:String = null):Boolean
   {
     if (key == null || JSFunction == null) return false;
    OpenedEvents[key]=JSFunction;return true;

  }

private function RemoveEventListener(key:String = null):Boolean
   {
     if (key == null) return false;
    OpenedEvents[key]="void";
    return true;

 }

Flex中当某一事件触发时不管JavaScript又没有监听按下面方式写就行了:

ExternalInterface.call(OpenedEvents.CreationComplete);

 

今天先写这些,改天再把交互中遇到的其他问题整理一下

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我无法为您制作一个完整的网页,但是我可以提供一些基本的HTML、CSS和JavaScript代码,以帮助您入门。 HTML 代码: ```html <!DOCTYPE html> <html> <head> <title>我的网页</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <header> <h1>我的网页</h1> <nav> <ul> <li><a href="#">首页</a></li> <li><a href="#">关于我们</a></li> <li><a href="#">联系我们</a></li> </ul> </nav> </header> <main> <section> <h2>欢迎来到我的网页</h2> <p>这是一个演示用的网页,用于展示HTML、CSS和JavaScript的基本用法。</p> </section> <section> <h2>最新文章</h2> <article> <h3>文章标题</h3> <p>这是一篇文章的摘要,用于吸引读者的注意。</p> <a href="#">阅读全文</a> </article> <article> <h3>文章标题</h3> <p>这是一篇文章的摘要,用于吸引读者的注意。</p> <a href="#">阅读全文</a> </article> <article> <h3>文章标题</h3> <p>这是一篇文章的摘要,用于吸引读者的注意。</p> <a href="#">阅读全文</a> </article> </section> </main> <footer> <p>版权所有 © 2021 我的网页</p> </footer> <script src="script.js"></script> </body> </html> ``` CSS 代码: ```css /* Reset CSS */ * { margin: 0; padding: 0; box-sizing: border-box; } /* Body */ body { font-family: Arial, sans-serif; font-size: 16px; line-height: 1.5; color: #333; } /* Header */ header { background-color: #f2f2f2; padding: 20px; } header h1 { font-size: 36px; margin-bottom: 10px; } nav ul { list-style: none; display: flex; } nav li { margin-right: 20px; } nav a { color: #333; text-decoration: none; } nav a:hover { color: #000; } /* Main */ main { max-width: 960px; margin: 0 auto; padding: 20px; } section { margin-bottom: 40px; } section h2 { font-size: 24px; margin-bottom: 10px; } article { margin-bottom: 20px; } article h3 { font-size: 20px; margin-bottom: 10px; } article p { margin-bottom: 10px; } article a { color: #333; text-decoration: none; } article a:hover { color: #000; } /* Footer */ footer { background-color: #f2f2f2; padding: 20px; text-align: center; } ``` JavaScript 代码: ```javascript // 在这里写 JavaScript 代码 ``` 这些代码只是一个基本的框架,您可以根据自己的需求和创意,进行修改和扩展。希望这些代码能够帮助您入门。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值