Flex AcrionScript 和 JavaScript 通讯
Flex ActionScript与JavaScript之间的通信是Web开发中的一个重要概念,它允许在Adobe Flash Player中的Flex应用程序与HTML页面上的JavaScript代码之间交换数据和控制交互。这种通信机制对于创建富互联网应用程序(RIA)时实现动态功能和增强用户体验非常关键。 1. **ExternalInterface API**: Flex中的`ExternalInterface`类提供了与JavaScript进行通信的接口。在上述示例中,`ExternalInterface.addCallback()`方法用于注册一个在JavaScript中可调用的ActionScript函数,而`ExternalInterface.call()`则用于调用JavaScript中的函数。这使得Flex组件能够与宿主环境(通常是浏览器)进行交互。 2. **ActionScript 代码分析**: - `init()`函数:在Flex应用初始化时,注册了`actionScriptSay`函数,使得JavaScript可以通过这个名称调用它。 - `onClick()`函数:当用户点击按钮时,`ExternalInterface.call()`被调用,将输入框`sayTxt`中的文本传递给JavaScript的`javascriptSay`函数。 - `actionScriptSay(value)`函数:这是在JavaScript中调用后执行的ActionScript函数,它接收传递的值并将其显示在文本区域`outPut`中。 3. **JavaScript 代码分析**: - `thisMovie(movieName)`函数:这是一个辅助函数,用来获取Flash对象,确保在不同浏览器中都能正确引用。 - `actionScriptSay(value)`函数:JavaScript调用这个函数,通过`thisMovie()`获取Flash对象,并调用ActionScript中的`actionScriptSay`方法,将参数`value`传递过去。 - `javascritpSay(value)`函数:这个函数由ActionScript调用,它将接收到的值添加到HTML表单的`output`字段中,从而在页面上显示ActionScript的消息。 4. **HTML 和 Flash 集成**: - HTML中使用`<object>`和`<embed>`标签来嵌入Flash内容。`classid`和`codebase`属性指定了Flash Player的识别信息,`movie`属性指定SWF文件的位置,`allowScriptAccess`参数设置为`sameDomain`,允许JavaScript在同一域名下访问ActionScript。 5. **安全性考虑**: - 默认情况下,Flash Player限制跨域脚本访问,以保护用户的安全。`allowScriptAccess`参数必须设置合适,以允许JavaScript与ActionScript之间的通信。 6. **应用场景**: - 数据交换:例如,JavaScript可以从服务器获取数据并传递给Flex应用,或者反之。 - 用户界面交互:如上述示例所示,JavaScript可以触发Flex应用的某些行为,反之亦然。 - 跨域通信:虽然默认受限,但在适当配置下,可以实现跨域请求。 通过理解这些知识点,开发者可以构建更加动态和交互性强的Web应用程序,结合Flex的强大图形和UI功能以及JavaScript的灵活性和浏览器兼容性,实现更丰富的用户体验。
- 粉丝: 177
- 资源: 58
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助