有時候我們需要在Flex應(yīng)用中嵌入HTML代碼,根據(jù)嵌入HTML要求的不同有以下兩種方法: 1、Flex文本組件(Label、Text、TextArea)的htmlText屬性支持一些基本的HTML代碼,例如:
<mx:TextArea> <mx:htmlText> <![CDATA[ <p align="center"><font size="15" color="#3399ff">this is a html code</font></p> ]]> </mx:htmlText> </mx:TextArea>
2、我們可以將Flex應(yīng)用嵌入到HTML頁面中,然后通過Flex2中的ExternalInterface(Flex1.5使用getURL("javascript:javascriptMethod")) 來實現(xiàn)Flex與HTML javascript的相互交互,進一步的,如果要在Flex應(yīng)用中嵌入完整的HTML呢? 其實實現(xiàn)的方法很簡單,只需要使用HTML的Iframe標簽來導(dǎo)入需嵌入的HTML頁面, 然后使用ExternalInterface調(diào)用相應(yīng)的javasript將該Iframe移動到我們Flex頁面需要嵌入HTML頁面的部分之上就可以了,示意圖如下:

也就是說,我們包含F(xiàn)lex SWF文件的HTML頁面主要有三個部分: 1、Flex swf 插件容器,F(xiàn)lexBuilder自動生成部分
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="
2、HTML Iframe標簽,絕對定位,用來導(dǎo)入HTML頁面
<iframe id="myFrame" name="myFrame" frameborder="0" style="position:absolute;background-color:transparent;border:0px;visibility:hidden;" />
3、移動Iframe和在Iframe中導(dǎo)入需嵌入Flex中的HTML頁面的腳本
<script> function moveIFrame(x,y,w,h) { var frameRef=document.getElementById("myFrame"); frameRef.style.left=x; frameRef.style.top=y; frameRef.width=w; frameRef.height=h; } function loadIFrame(url){ top.frames["myFrame"].location.href=url; } </script>
注:關(guān)鍵點,系統(tǒng)產(chǎn)生的html頁面需要手動加入上述代碼,否則沒有效果,許多朋友看不到實例效果就是這個原因。
查看更多...
|