在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源代码

欢迎关注我的博客:http://hoojo.cnblogs.com

http://blog.csdn.net/IBM_hoojo

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 (Flash)中嵌入HTML 代码或页面—Flex IFrame的更多相关文章

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

    在flex组件中嵌入html代码,可以利用flex iframe.这个在很多时候会用到的,有时候flex必须得这样做,如果你不这样做还真不行-- flex而且可以和html进行JavaScript交互 ...

  2. linux内核分析作业4:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

    系统调用:库函数封装了系统调用,通过库函数和系统调用打交道 用户态:低级别执行状态,代码的掌控范围会受到限制. 内核态:高执行级别,代码可移植性特权指令,访问任意物理地址 为什么划分级别:如果全部特权 ...

  3. JSP中嵌入java代码方式以及指令

    JSP中嵌入java代码的三种方式: (1)声明变量或方法 :  <%! 声明; %> :慎重使用,因为此方法定义的是全局变量 (2)java片段(scriptlet):  <% j ...

  4. Delphi代码中嵌入ASM代码

    前言 Delphi作为一个快速高效的开发平台,使用的人越来越多,但熟悉在Delphi代码中嵌入ASM代码的程序员我想不多,因为这方面的资料太少了,另一方面,它还需要有基本的汇编语言知识,关於汇编语言的 ...

  5. Delphi代码中嵌入ASM代码(简单明了)

    前言 Delphi作为一个快速高效的开发平台,使用的人越来越多,但熟悉在Delphi代码中嵌入ASM代码的程序员我想不多,因为这方面的资料太少了,另一方面,它还需要有基本的汇编语言知识,关於汇编语言的 ...

  6. 实验--使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用(杨光)

    使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 攥写人:杨光  学号:20135233 ( *原创作品转载请注明出处*) ( 学习课程:<Linux内核分析>MOOC课程 ...

  7. LInux内核分析--使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

    实验者:江军 ID:fuchen1994 实验描述: 选择一个系统调用(13号系统调用time除外),系统调用列表参见http://codelab.shiyanlou.com/xref/linux-3 ...

  8. 实验四——使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

    实验目的: 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 实验过程: 查看系统调用列表 get pid 函数 #include <stdio.h> #include & ...

  9. Linux内核设计第四周学习总结 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

    陈巧然原创作品 转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的: 使用库函数A ...

随机推荐

  1. 【BZOJ 3133】 3133: [Baltic2013]ballmachine (线段树+倍增)

    3133: [Baltic2013]ballmachine Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 148  Solved: 66 Descri ...

  2. luoguP3250 [HNOI2016]网络 树链剖分 + 堆

    机房某大佬告诉我,一条链在全局线段树中的区间最多有$log$段 因此同样的,代表不在这条链上的区间同样只有$log$段 对这$log$段区间进行维护即可 为了能够删除,在线段树的每个节点暴力维护一个堆 ...

  3. POJ1716 贪心

    题目大意:在[0,10000]上给出n个区间,要求在区间选整数点,每个区间至少包含两个点,问至少要几个点.题目保证有解决方案. 题目分析: 我们做过在区间上至少包含一个点的题目.类似的方法,我们先排序 ...

  4. 2017-2018-1 JAVA实验站 冲刺 day01

    2017-2018-1 JAVA实验站 冲刺 day01 各个成员在 Alpha 阶段认领的任务 小组成员 分工 任务量 张韵琪 写博客.后期市场推广,营销.打杂.各职能的配合 齐力锋 提供宣传用图. ...

  5. bzoj 2724 在线区间众数

    如果不是在线,就是裸的莫队. 但这道题要求在线,然后就不会了.. 标程: http://hi.baidu.com/__vani/item/ecc63f3527395283c2cf2945 算法主要是分 ...

  6. scrapy--将爬取得数据保存到数据库中

    首先要做的: 建库 article 建表 article 在cmd中的工作环境中安装mysql的驱动 mysqlclient pip install mysqlclient #如果是使用centos ...

  7. [转]Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件

      Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件. 1.为了防止拖动ListView时,在列表末尾重复数据显示.需要加入 HashMap<In ...

  8. linux 下select的1024限制

    1024限定的不只是监听的个数,还是文件描述符的最大值,注意,是值 今天编写模拟客户端程序进行测试,使用了select.之前一直错记成1024是对fd_set里fd个数的限制(我的程序是每次selec ...

  9. 解决因为google cdn无法访问导致无法打开stackoverflow等网站的方法

    许多网站使用了Google的CDN来加速Jquery之类的库来加速网站访问,但由于方校长发福利的原因,导致这些网站很容易出现无法加载"ajax.googleapis.com"而出现 ...

  10. 如何注入值到Spring bean属性

    在Spring中,有三种方式注入值到 bean 属性. 正常的方式 快捷方式 “p” 模式 看到一个简单的Java类,它包含两个属性 - name 和 type.稍后将使用Spring注入值到这个 b ...