在Flex(Flash)中嵌入HTML代码或页面(Flex IFrame)

所属分类: 网络编程 / Flex 阅读数: 563
收藏 0 赞 0 分享

在flex组件中嵌入html代码,可以利用flex iframe。这个在很多时候会用到的,有时候flex必须得这样做,如果你不这样做还真不行……

flex而且可以和html进行JavaScript交互操作,flex调用到html中的JavaScript方法以及获取调用后的返回值。

1、flex iframe下载地址:https://github.com/downloads/flex-users/flex-iframe/flex-iframe-1.5.1.zip

下载完成后目录如下
 
asdoc就是文档doc了
bin有需要用到的flex库 swc
examples就是示例
sources源代码

2、将bin目录中的swc引入到你的flex工程中,并加入代码片段如下

复制代码 代码如下:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:flexiframe="http://code.google.com/p/flex-iframe/"
horizontalAlign="center" verticalAlign="middle" xmlns:s="library://ns.adobe.com/flex/spark">

<mx:Script>
<![CDATA[
import mx.controls.Alert;
protected function sayHelloHandler(event:MouseEvent):void {
// 调用当前iframe嵌入页面中的sayHello 的JavaScript方法
iFrameBySource.callIFrameFunction("sayHello");
}

protected function sayHandler(event:MouseEvent):void {
// 调用当前iframe嵌入页面中的say的JavaScript方法,并传入一个参数
iFrameBySource.callIFrameFunction("say", ["hello world!"]);
}
protected function sayHiHandler(event:MouseEvent):void {
// 调用当前iframe嵌入页面中的sayHi的JavaScript方法,并传入2个参数。sayHi方法会返回一个字符串,最后一个回调就是输出值的函数
iFrameBySource.callIFrameFunction("sayHi", ["hello world", "李四"], function (data:*): void {
Alert.show(data);
});
}
]]>
</mx:Script>

<!-- HTML content stored in a String -->
<mx:String id="iFrameHTMLContent">
<![CDATA[
<html>
<head>
<title>About</title>
</head>
<body>
<div>About</div>
<p>Simple HTML Test application. This test app loads a page of html locally.</p>
<div>Credits</div>
<p> </p>
<p>IFrame.as is based on the work of</p>
<ul>
<li><a href="http://coenraets.org/" target="_top">Christophe Coenraets</a></li>
<li><a href="http://www.deitte.com/" target="_top">Brian Deitte</a></li>
</ul>
</body>
</html>
]]>
</mx:String>

<mx:Panel width="80%" height="80%" title="使用source本地远程页面">
<flexiframe:IFrame id="iFrameBySource" width="100%" height="100%" source="frame.html"/>
<s:Button label="sayHello" click="sayHelloHandler(event)"/>
<s:Button label="say-param" click="sayHandler(event)"/>
<s:Button label="sayHi" click="sayHiHandler(event)"/>
</mx:Panel>

<mx:Panel width="80%" height="80%" title="使用source加载远程页面">
<flexiframe:IFrame id="iFrameByRemoteSource" width="100%" height="100%" source="http://www.baidu.com" visible="true"
overlayDetection="true" />
</mx:Panel>

<mx:Panel width="80%" height="80%" title="使用content属性 加载本地html文本内容">
<flexiframe:IFrame id="iFrameByContent" width="100%" height="100%" content="{iFrameHTMLContent}"/>
</mx:Panel>

</mx:Application>

frame.html 页面内容
复制代码 代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>frame.html</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<script type="text/javascript">
// 无参数
function sayHello() {
alert("hello......");
}

// 1个参数
function say(message) {
alert("your say: " + message);
}

// 多个参数 并返回值
function sayHi(message, name) {
alert("your say: " + message + ", name: " + name);
return "your say: " + message + ", name: " + name;
}
</script>

</head>

<body>
flex frame example html page!
<input type="button" value="say" onclick="sayHello()"/>
</body>
</html>

要注意的是:你的flex项目工程需要发表到http的应用服务器(如tomcat、jboss、iis)这些服务器中,用http请求方式才能调用到页面内容和JavaScript方法。如果不发布到应用服务器中,那样只能在iframe中嵌套远程的http请求的页面,本地静态页面是无法显示的。

更多精彩内容其他人还在看

Flex控制弹出窗口拖动范围示例代码

使用TilteWindow形式的弹出窗口发现有时候一不小心将窗口拖动到上面就拖不回来了,导致弹出窗口无法关闭,下面有个解决方法
收藏 0 赞 0 分享

Flex中通过RadioButton进行切换示例代码

这篇文章主要介绍了Flex中通过RadioButton进行切换示例代码,需要的朋友可以参考下
收藏 0 赞 0 分享

获取到AdvancedDataGrid选中行的全部数据

通过AdvancedDataGrid的id来获取selectedItem和selectedItems属性,下面有个不不错的示例大家可以参考下
收藏 0 赞 0 分享

flex是什么 Flex介绍

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

Flex3 DataGrid拖拽到ClumnChart动态显示图表实现代码

Flex3 DataGrid拖拽到ClumnChart动态显示图表(支持多行同时拖拽,重复数据不重得添加,添加了图表右键菜单)等等,感兴趣的朋友可以了解下啊,或许对你有所帮助
收藏 0 赞 0 分享

Flex 基于数据源的Menu Tree实现代码

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

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

需要使用flex调用js来操控用ajax做的三维球,开始网上查找flex和js之间互相调用的范例,这里整理一下也避免忘记,感兴趣的朋友可以了解下,或许对你有所帮助
收藏 0 赞 0 分享

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

之前写了一篇flex和js之间的通信,还记得最开始研究这两门语言如何交互,一晃我的任务也快做完了,就把项目打一下包,感兴趣的朋友可以参考下,或许对你学习flex有所帮助
收藏 0 赞 0 分享

Flex帮助文档(chm格式)制作及FAR的使用

如何将自己的flex项目提取里面的注释生成网页形式的帮助文档,现在也比较流行这种方式,好像flex里面不能直接生成chm的文档,这里推荐FAR以及RoboHelp,不过RoboHelp破解版不好找,并且英文版的,我也不是怎么懂,还是FAR方便一些,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

Flex帮助文档(html格式)制作及ASDoc的使用

Flex Realspace产品在sp3时上线,急需制作帮助文档,由于在开发的时候没有考虑后期的帮助文档,查了很多资料,希望通过ASDoc达成愿望,感兴趣的朋友可以了解下,或许对你有所帮助
收藏 0 赞 0 分享
查看更多