Flex最终会生成swf文件以ActiveX的方式部署网页上(html,jsp,asp,aspx等),由于ActiveX是一个独立体它并不能直接
获取页面的元素数据,同样asp,aspx等服务端代码也不对它进行操作,这样Flex的信息交互就变得很孤立。在Web用户程序中不同页的信息交换是非
常重要,通常这些信息明确下一个页面应该做什么;如果Flex得不到这些信息那么Flex在实际应用中就大打折扣!于是到网上找一下资料,发现自己的担心
是多余的。Flex提供相关对象可以灵活地和当前网页的JavaScript相互进行灵活的调用。那就是说可以通过JavaScript调用Flex内部
的方法,同样在Flex时也可以直接调用页面上相关的JavaScript方法。
Flex提供了ExternalInterface对象用于和JavaScript进行互操作。对象分别提供了addCallBack和Cell方法:
addCallBack方法
用于注册一个内部方法用于给JavaScript调用。
function callMe(name:String):String {
return name+":" + txtUserName.text ;
}
实际上JavaScript是不能直接调用Flex的内部方法的,那如何使JavaScript能够调用呢?
首先通过ExternalInterface.addCallback("myFunction", callMe);的方法进行注册,可以把方法放在Applicaion. Initialize的事件中。
方法第一个参数是:外部调用名称就是JavaScript调用的方法名称。
方法第二个参数是:代理执行Flex的内部函数。
JavaScript通过以下方式调用:
function Button1_onclick() {
alert(document.all('相关ActiveX控件名称').myFunction('bbq'));
}
Call方法
用于调用当前页面里的JavaScript方法.
<script id="clientEventHandlersJS" language="javascript">
function getuserid()
{
return 'henry';
}
</script>
在Flex里可以通过以下方式调用getuserid()方法。
var id:String= ExternalInterface.call("getuserid");
Alert.show(id);
Flex在和JavaScript整合这方面做得非常好,你并不需要花费太多的工作就能够实现和页面数据元素进行数据交换;同样也可以调用已经有的ajax功能。
接下来学习的是不同页面的Flex应用实例如何共享信息。
最后还是老话一句,有兴趣的朋友多了解一下Flex.
Flex的SDK帮助文件写得还挺详细的,基本上能找到使用的方法。
分享到:
相关推荐
- Flex通过设置`ExternalInterface.addCallback`的回调函数,监听JavaScript环境的变化,一旦ActiveX的调用完成并返回数据,JavaScript会调用这个回调函数,将结果传回Flex。 5. **安全和兼容性**: 使用此方法...
压缩包中的 "Flex-js-activex-相互调用自己做的实例" 文件很可能是包含了一个实际应用示例,展示了如何实现 Flex 4.5 与 JavaScript 和 OCX 控件的交互。这个实例可能包括一个 Flex 项目,其中定义了与 JS 交互的...
在Flex端,我们可以注册ActionScript函数,使其能在JavaScript中调用,然后通过MFC调用JavaScript函数来实现通信。在MFC端,可以通过IE浏览器控件的接口调用JavaScript方法,从而传递数据和控制Flex应用的行为。 6....
3. **设置断点**:在Flex代码中设置断点,这些位置是你希望在执行过程中暂停的地方,以便检查变量状态、调用堆栈等。 4. **开启浏览器调试**:启动IE,打开包含Flex应用的网页。此时,你的IDE应该能够连接到Flash ...
5. AC_RunActiveContent.js:这是Adobe的JavaScript库,用于在没有Flash Player的情况下自动检测和安装,确保Flex应用能在用户的浏览器中正常运行。 6. articles.swf:这是编译后的Flex应用程序,包含所有的UI和业务...
瘦客户端依赖HTTP、HTML、JavaScript等标准Web技术,而胖客户端则通过插件如Plug-in、ActiveX控件、Java Applet或SVG技术提升浏览器功能。目前,瘦客户端开发模式已成为WebGIS的主流,尤其是B/S架构的WebGIS。 然而...
这种方案通过服务器端调用ArcIMS应用服务器连接器或通过客户端JavaScript组装ArcXML与ArcIMS应用服务器直接通信的方式接收用户请求。结果通常以HTML形式在浏览器中呈现。虽然这种方案技术较为成熟且开发模式固定,但...
在Flex开发环境中,通过JavaScript获取客户端IP地址和计算机名的示例代码,主要涉及以下知识点: 1. Flex基础:Flex是由Adobe公司开发的一个开源的应用框架,用于构建跨平台的富互联网应用程序(RIA)。Flex结合了...
`ExternalInterface.call`方法允许Flex的ActionScript代码调用JavaScript函数,并接收返回的结果。在`init()`函数中,`getClientPcName()`和`getClientIp()`被调用,返回的PC名称和IP地址被组合并显示在一个Alert...
在Flash端暴露JavaScript接口,然后在WPF中通过WebBrowser控件的Document.InvokeScript调用来访问这些接口。 - 反之,WPF也可以通过设置Flash控件的属性或调用方法来影响Flash的行为。 6. **安全与性能考虑** - ...
ActiveX控件允许C++代码直接控制Flash Player,而JavaScript接口则需要通过WebBrowser控件间接调用。这两种方法都需要对Flash Player的公开API有深入理解。 3. **事件处理**:Flash Player会触发各种事件,如加载...
可以使用ActionScript调用PB的ActiveX接口,或者PB通过JavaScript与WebViewer中的Flash进行交互,实现数据的传递。 - **性能优化**:Flash元素可能会增加应用的内存占用和CPU使用,因此在设计时要考虑到性能影响,...
2. 对于微软的SP2 IE版本,由于其对ActiveX控件的安全限制增强,直接在页面中加载ActiveX可能会出现问题,需要通过JavaScript来调用Flash对象才能解决。 3. 缺少对Flash Player版本的检查机制,在缺少或版本不兼容的...