在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. three.js 源码注释(三十九)Light/HemisphereLight.js 半球光、 自然光(天光效果)

    /*** * HemisphereLight类 是在场景中创建半球光,就是天光效果,经常用在室外,将各个位置的物体都照亮,室内的光线大多是方向性的, * 无论是窗口还是灯槽,用平面光很方便,室外用平面 ...

  2. 用sql从一张表更新数据到另外一张表(多表数据迁移)

    update TBL_1 A, TBL_2 B, TBL_3 Cset a.email=c.email_addrwhere a.user_id=b.user_id and b.un_id=c.un_i ...

  3. c语言中动态数组的建立

    一维动态数组的创建,这个比较简单,直接上代码 #define _CRT_SECURE_NO_DEPRECATE #include<stdio.h> #include<stdlib.h ...

  4. 用SQL语句,删除掉重复项只保留一条

    用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select ...

  5. eclipse中无法使用fat.jar

    因为某种需要,我要打jar包,而eclipse中自带的打包功能又太过于繁琐,因此找到这个插件.不过尝试了许久都没有成功,最后终于找到了原因,是因为该插件的版本太低的缘故.相见:https://code ...

  6. 数据库知识整理<一>

    关系型数据库知识整理: 一,关系型数据库管理系统简介: 1.1使用数据库的原因: 降低存储数据的冗余度 提高数据的一致性 可以建立数据库所遵循的标准 储存数据可以共享 便于维护数据的完整性 能够实现数 ...

  7. SQL Server 利用游标解决Tempdb究极竞争-DBA-程序员需知

    SQL Server tempdb分配竞争算是DBA老生常谈的问题了,几乎现在所有的DBA都知道多建几个文件来解决/缓解问题.但是深层次的的竞争依旧不可避免.这里给大家剖析下游标在tempdb中的特点 ...

  8. Orchard Express Oracle v1.7.2 发布

    发布说明: 1. 添加Oracle支持,在AppData目录下提供Oracle及Sql Server数据库创建脚本. 2. 修正上一版本(精简版 v1.7.2)中,Dashboard无需登录问题. O ...

  9. python 列表生成器

    python 列表生成器 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 一个循环 在C语言等其他语言中,for循环一般是这样的 ...

  10. Python编码/文件读取/多线程

    Python编码/文件读取/多线程 个人笔记~~记录才有成长   编码/文件读取/多线程 编码 常用的一般是gbk.utf-8,而在python中字符串一般是用Unicode来操作,这样才能按照单个字 ...