在Flex(Flash)中嵌入HTML代碼或頁面(Flex IFrame)
在flex組件中嵌入html代碼,可以利用flex iframe。這個(gè)在很多時(shí)候會(huì)用到的,有時(shí)候flex必須得這樣做,如果你不這樣做還真不行……
flex而且可以和html進(jìn)行JavaScript交互操作,flex調(diào)用到html中的JavaScript方法以及獲取調(diào)用后的返回值。
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 {
// 調(diào)用當(dāng)前iframe嵌入頁面中的sayHello 的JavaScript方法
iFrameBySource.callIFrameFunction("sayHello");
}
protected function sayHandler(event:MouseEvent):void {
// 調(diào)用當(dāng)前iframe嵌入頁面中的say的JavaScript方法,并傳入一個(gè)參數(shù)
iFrameBySource.callIFrameFunction("say", ["hello world!"]);
}
protected function sayHiHandler(event:MouseEvent):void {
// 調(diào)用當(dāng)前iframe嵌入頁面中的sayHi的JavaScript方法,并傳入2個(gè)參數(shù)。sayHi方法會(huì)返回一個(gè)字符串,最后一個(gè)回調(diào)就是輸出值的函數(shù)
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 target="_top">Christophe Coenraets</a></li>
<li><a target="_top">Brian Deitte</a></li>
</ul>
</body>
</html>
]]>
</mx:String>
<mx:Panel width="80%" height="80%" title="使用source本地遠(yuǎn)程頁面">
<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加載遠(yuǎn)程頁面">
<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文本內(nèi)容">
<flexiframe:IFrame id="iFrameByContent" width="100%" height="100%" content="{iFrameHTMLContent}"/>
</mx:Panel>
</mx:Application>
frame.html 頁面內(nèi)容
<!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">
// 無參數(shù)
function sayHello() {
alert("hello......");
}
// 1個(gè)參數(shù)
function say(message) {
alert("your say: " + message);
}
// 多個(gè)參數(shù) 并返回值
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項(xiàng)目工程需要發(fā)表到http的應(yīng)用服務(wù)器(如tomcat、jboss、iis)這些服務(wù)器中,用http請(qǐng)求方式才能調(diào)用到頁面內(nèi)容和JavaScript方法。如果不發(fā)布到應(yīng)用服務(wù)器中,那樣只能在iframe中嵌套遠(yuǎn)程的http請(qǐng)求的頁面,本地靜態(tài)頁面是無法顯示的。
- Vue 使用iframe引用html頁面實(shí)現(xiàn)vue和html頁面方法的調(diào)用操作
- Html中 IFrame的用法及注意點(diǎn)
- html判斷當(dāng)前頁面是否在iframe中的實(shí)例
- js取得html iframe中的元素和變量值
- 設(shè)置iframe的document.designMode后僅Firefox中其body.innerHTML為br
- js中訪問html中iframe的文檔對(duì)象的代碼[IE6,IE7,IE8,FF]
- 讓iframe自適應(yīng)高度(支持XHTML,支持FF)
- 讓iframe自適應(yīng)高度(支持xhtml)IE firefox兼容
- HTML iframe標(biāo)簽用法案例詳解
相關(guān)文章
Flex 基于數(shù)據(jù)源的Menu Tree實(shí)現(xiàn)代碼
由外部參數(shù)flashvars指定數(shù)據(jù)源的文件位置或render鏈接,在源數(shù)據(jù)上加href和target屬性來控制打開窗口,可自定義父節(jié)點(diǎn)和子節(jié)點(diǎn)圖標(biāo),不設(shè)置采用系統(tǒng)默認(rèn),感興趣的你可以了解下啊,或許對(duì)你有所幫助2013-01-01
Flex中對(duì)表格中某列的值進(jìn)行數(shù)字格式化保留兩位小數(shù)
表格中展示的比率,對(duì)比率的處理是:保留兩位小數(shù),并向上保留。通過對(duì)某列的值進(jìn)行數(shù)字格式化來實(shí)現(xiàn)保留兩位小數(shù)2014-10-10
Flex調(diào)Javascript打開新窗口示例代碼
Flex通過調(diào)用Javascript打開全屏的新窗口新窗口示例代碼 ,具體實(shí)現(xiàn)代碼如下,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-08-08
Flex4 DataGrid中嵌入RadioButton實(shí)現(xiàn)思路及代碼
本節(jié)主要介紹了Flex4 DataGrid中嵌入RadioButton實(shí)現(xiàn)思路及代碼,需要的朋友可以參考下2014-07-07
Flex彈出窗口請(qǐng)求Action函數(shù)示例
這篇文章主要介紹了Flex彈出窗口請(qǐng)求Action函數(shù),需要的朋友可以參考下2014-05-05
flex實(shí)現(xiàn)DataGrid高亮顯示數(shù)據(jù)功能的解決方案
原生的DataGrid根本無法達(dá)到所要的效果,目前一般就是來改寫原生的DataGrid,只需重新寫一個(gè)類來重寫drawRowBackground方法就可以了2013-10-10

