- 浏览: 107274 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
yyzz1986:
楼主 。貌似发现你的代码有点小问题 。
客户端中文有乱码。
...
flex与java之间socket通信的教程4 -
hpyhgz:
写的不错啊,但是用ImageIO读图片,会有一部分色彩丢失的, ...
Java程序对图片的各种处理 -
远去的渡口:
LZ辛苦了,学习一下
初次接触flex,看到你的博客里面有关f ...
Flex + LCDS + Java 入门教程 -
BelieveTheGod:
...
jsp验证码生成以及刷新 -
chian_xxp:
作者强啊,能否写出点实例呢/
看作者的这些方法,发觉自己的知识 ...
提升JSP页面响应速度的七大秘籍绝招
有时候我们需要在Flex应用中嵌入HTML代码,根据嵌入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应用嵌入到HTML页面中,然后通过Flex2中的ExternalInterface(Flex1.5使用getURL("javascript:javascriptMethod"))来实现Flex与HTML javascript的相互交互,进一步的,如果要在Flex应用中嵌入完整的HTML呢?
其实实现的方法很简单,只需要使用HTML的Iframe标签来导入需嵌入的HTML页面,然后使用ExternalInterface调用相应的javasript将该Iframe移动到我们Flex页面需要嵌入HTML页面的部分之上就可以了,示意图如下:
也就是说,我们包含Flex SWF文件的HTML页面主要有三个部分:
1、Flex swf 插件容器,FlexBuilder自动生成部分
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="IFrameDemo" width="100%" height="100%"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">
<param name="movie" value="IFrameDemo.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#869ca7" />
<embed src="IFrameDemo.swf" quality="high" bgcolor="#869ca7"
width="100%" height="100%" name="detectiontest" aligh="middle"
play="true" loop="false" quality="high"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
wmode="opaque"
swLiveConnect="true"
pluginspage="http://www.macromedia.com/go/getflashplayer">
</embed>
</object>
2、HTML Iframe标签,绝对定位,用来导入HTML页面
<iframe id="myFrame" name="myFrame" frameborder="0"
style="position:absolute;background-color:transparent;border:0px;visibility:hidden;" />
3、移动Iframe和在Iframe中导入需嵌入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>
Flex中的导入Iframe页面和移动Iframe的代码如下:
import flash.external.ExternalInterface;
import flash.geom.Point;
import flash.net.navigateToURL;
private var __source: String;
private function moveIFrame(): void {
var localPt:Point = new Point(0, 0);
var globalPt:Point = this.localToGlobal(localPt);
ExternalInterface.call("moveIFrame", globalPt.x, globalPt.y, this.width, this.height);
}
public function set source(source: String): void {
if (source) {
if (! ExternalInterface.available)
{
// TODO: determine if this Error is actually needed. The debugger
// build gives the error below. Assuming that this error will not show
// up in the release build but haven't checked.
throw new Error("The ExternalInterface is not available in this container. Internet Explorer ActiveX, Firefox, Mozilla 1.7.5 and greater, or other browsers that support NPRuntime are required.");
}
__source = source;
ExternalInterface.call("loadIFrame", source);
}
}
两个方法分别直接调用使用ExternalInterface.call调用前面我们提到的HTML页面上的两个Javascript方法。另外一个要注意的是<Canvas/>继承自flash.display.DisplayObject类的localToGlobal方法的使用,该方法将基于Flash场景的坐标转换为基于全局本地坐标,也就是浏览器页面坐标:
//Flash场景0,0坐标 var localPt:Point = new Point(0, 0); //转换为浏览器页面坐标 var globalPt:Point = this.localToGlobal(localPt);
这样就可以在Flex页面中嵌入任意的HTML页面了,为了方便,Brian写了个嵌入HTML页面的代理IFrame组件,该组件封装了所有需要的Flex端代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.macromedia.com/2005/mxml"
resize="callLater(moveIFrame)"
move="callLater(moveIFrame)">
<mx:Script>
<![CDATA[
import flash.external.ExternalInterface;
import flash.geom.Point;
import flash.net.navigateToURL;
private var __source: String;
private function moveIFrame(): void {
var localPt:Point = new Point(0, 0);
var globalPt:Point = this.localToGlobal(localPt);
ExternalInterface.call("moveIFrame", globalPt.x, globalPt.y, this.width, this.height);
}
public function set source(source: String): void {
if (source) {
if (! ExternalInterface.available)
{
// TODO: determine if this Error is actually needed. The debugger
// build gives the error below. Assuming that this error will not show
// up in the release build but haven't checked.
throw new Error("The ExternalInterface is not available in this container. Internet Explorer ActiveX, Firefox, Mozilla 1.7.5 and greater, or other browsers that support NPRuntime are required.");
}
__source = source;
ExternalInterface.call("loadIFrame", source);
}
}
public function get source(): String {
return __source;
}
override public function set visible(visible: Boolean): void {
super.visible=visible;
if (visible)
{
ExternalInterface.call("showIFrame");
}
else
{
ExternalInterface.call("hideIFrame");
}
}
]]>
</mx:Script>
</mx:Canvas>
该IFrame组件有个source属性用来记录需要载入的嵌入HTML页面的地址,每次source属性更新时,调用ExternalInterface.call("loadIFrame", source)调用javascript方法loadIFrame方法在HTML 页面中的IFrame中载入要嵌入的HTML页面。
另外,重载了Canvas的visible属性,以便在Canvas隐藏HTML页面中的IFrame。
如下使用该组件在Flex应用中嵌入HTML页面方法:
<IFrame id="iFrame" source="http://blog.eshangrao.com" width="300" height="400" />以上代码将在我们的Flex应用中嵌入本站首页。
查看示例|完整代码下载
原文:Embedding HTML in a Flex application in AS3
例子:
Iframe 组件
demo
http://www.deitte.com/IFrameDemo3/IFrameDemo.html
源码
http://www.deitte.com/IFrameDemo3/srcview/index.html
你看的那个例子是教程,对于不熟悉as和flex的人来说是很难看懂的,属于自定义控件,如果你是初学者,只是要使用,就用别人做好的吧。
发表评论
-
AS3安全沙箱,跨域加载SWF
2011-12-19 12:47 2149AS3的安全沙箱的确是让人很无奈,本篇文章仅用于解决一个特定的 ... -
当flex builder无法运行或者flashplayer无法安装时
2010-08-20 11:15 1756flashplayer无法安装,提示版本问题时。打开注册表HK ... -
flex与后台交互的4种方法
2009-04-18 14:06 1419一、HTTPService 程序代码: <?xm ... -
Flex + LCDS + Java 入门教程
2009-04-09 16:12 1605一.引 很多人在帖子和群中问到过一些关于建立F ... -
第一个ActionScript MySQL Driver:asSQL原理与实践
2009-03-31 14:14 1326熟悉Flex 的开发者都知道,在Flex中不能直接访问数据库, ... -
flex与j2ee交互
2009-03-31 14:12 1054MXML 程序代码 <?xml version=&qu ... -
Flex远程调用机制RemoteObject应用技巧
2009-03-31 14:11 1045本文主要讨论Flex在客户端与J2EE中间层数据交互的过程。 ... -
对ActionScript语言函数重载的理解
2009-03-31 14:11 1213ActionScript与JavaScript类似,都是符合E ... -
用Adobe Flex 2和Java创建富Internet应用
2009-03-31 14:10 1496用Adobe Flex 2和Java创建富Internet应用 ... -
12个Flex常用功能代码
2009-03-31 14:09 7881。 复制内容到系统剪贴板 CODE: System.set ... -
Flex 中 12 个简单但是很有用的函数
2009-03-31 14:08 902No.1 Copy content to clipboard: ... -
Flex加载图片的常用的几种方式
2009-03-31 14:06 1655<?xml version="1.0" ... -
FlexApplication初始化顺序
2009-03-31 14:05 692preloader->systemManager-> ... -
creationPolicy属性
2009-03-31 14:04 1089导航条容器内置推迟实 ... -
Flex 窗口最小化,最大化,拖动
2009-03-31 14:02 5261想当初,我不知道如何用flex怎么做透明air程序,非常郁闷, ... -
屏蔽FLEX右键
2009-03-31 14:01 1324屏蔽FLEX右键菜单以及实现自定义的FLEX右键功能 完全屏蔽 ... -
flex与java之间socket通信的教程5
2009-03-25 14:53 4108Flex和java的socket通信(五)聊天室的补充-在线列 ... -
flex与java之间socket通信的教程4
2009-03-25 14:50 3487(四)一个简单的聊天室目的:做一个简单的聊天室,用来实现消息广 ... -
flex与java之间socket通信的教程3
2009-03-25 14:48 2518三)多客户通信目的: ... -
flex与java之间socket通信的教程2
2009-03-25 14:44 2496二)单向通信目的:客 ...
相关推荐
在Flex应用中嵌入HTML是一种常见的需求,这可以让我们在富客户端环境中利用HTML的灵活性和丰富性。Flex是由Adobe开发的一种开源框架,主要用于构建RIA(Rich Internet Applications)即富因特网应用程序。它允许...
在HTML页面中嵌入Flex组件,可以利用Flex的强大功能来丰富网页的用户体验。本文将详细介绍如何在HTML中嵌入Flex容器,并以IFrameDemo为例进行说明。 首先,我们需要理解Flex和HTML的集成方式。通常,我们可以使用`...
而IFrame(Inline Frame)是HTML的一个元素,允许在页面内嵌入另一个完整的网页。在Flex中使用IFrame,可以将HTML内容与Flex组件结合,实现混合式应用。 遇到的典型问题主要有两个: 1. **Flex组件被遮挡**:由于...
在Flex中嵌入完整的网页所用到的类, xmlns:flexiframe="com.google.code.flexiframe.*" <flexiframe:IFrame id="helpFrame" source="assets/dreamweaver/help/helpHome....
标题“flex加载html页面”指的是在Flex项目中嵌入并显示HTML内容的技术。这通常通过使用Flex中的`mx.controls.WebBrowser`组件或`flash.display.Loader`类来实现。以下是对这两个方法的详细说明: 1. **`mx....
在“FLEX嵌入HTML(精简版)”的例子中,我们将学习如何利用FLEX的强大功能与HTML的灵活性相结合,以提升用户体验。HTML由于其易读性和丰富的标记能力,常用于构建网页结构和内容,而FLEX则擅长提供动态交互和视觉效果...
总结来说,"flex嵌入html(升级版)"的实践示例IFrameDemo展示了如何利用Flex的IFrame组件将HTML内容整合到Flex应用中,实现富媒体和交互性的结合。这种技术在需要混合展现静态内容和动态数据,或是利用现有HTML资源时...
标题中的“flex 嵌入完美Iframe”指的是在Adobe Flex应用程序中嵌入HTML的Iframe元素,并实现良好的交互和兼容性。Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。它允许开发者创建...
将Flex嵌入到JSP页面中,可以结合两者的优点,提供丰富的图形用户界面和强大的后端数据处理能力。 在将Flex嵌入到JSP页面时,可能会遇到一个常见的问题:Flex组件被其他元素遮挡。这通常是由于CSS样式冲突或者布局...
HTML 嵌入 Flex SWF 是一种在网页中集成 Adobe Flex 生成的 Flash 动态内容的技术。Flex 是一个用于构建富互联网应用程序(RIA)的框架,它基于 ActionScript 和 MXML,允许开发者创建交互性强、用户体验良好的动态...
JSP是一种用于创建动态网页的Java技术,它允许在HTML中嵌入Java代码或标签库(Tag Libraries)。而Flex是基于ActionScript和MXML的前端开发工具,主要用于创建富客户端应用,它通过Flash Player或Adobe AIR运行在...
"flex把html页面作为类似iframe的样子的组件完全的嵌入到mxml中去"这个主题就是关于如何在Flex应用中使用IFrame组件来展示HTML内容。 Flex是Adobe公司推出的一种基于ActionScript和MXML的开源框架,用于构建富...
1. **创建HTML容器**:在Flex中,你可以使用`HTML`组件来嵌入一个HTML页面。这个组件允许你加载本地或远程的HTML文件,并通过Flex与HTML之间的API进行交互。 2. **配置安全策略**:由于跨域和安全限制,你需要确保...
HTML的iframe(Inline Frame)元素允许我们在一个HTML文档中嵌入另一个HTML文档,这在需要在页面中展示独立、可滚动的内容或者加载外部资源时非常有用。在Flex中,由于它本身并不直接支持iframe,我们需要通过一些...
通过IFrame组件,可以实现Flex应用程序与嵌入HTML页面之间的交互。Flex组件可以调用HTML页面中定义的JavaScript函数,并且JavaScript函数的返回值也可以被Flex应用程序捕获和使用。 Flex IFrame组件支持一系列的...
在IT行业中,JSP(JavaServer Pages)是一...通过学习和应用这些源码,开发者可以掌握如何在网页中嵌入Flash报表,以及如何利用JSP与Flex的协作来实现动态数据展示,这对于提升Web应用的用户体验和功能有着显著的效果。
完成Flex应用开发后,可以通过Flex编译器将其打包成SWF文件,然后嵌入到HTML页面中,或者作为独立的AIR应用发布。此外,Flex还支持自定义部署策略,如沙箱限制、安全策略文件等。 九、Flex学习资源 “Flex中文帮助...
在Flex开发中,有时我们需要集成外部网页或者HTML内容到我们的应用程序中,这时候`iframe`就成为一个重要的工具。Flex是Adobe推出的一种基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。本文将...
JSP(JavaServer Pages)是一种动态网页开发技术,它允许开发者在HTML页面中嵌入Java代码,实现服务器端的动态处理。而Flex是Adobe公司推出的一种用于构建富互联网应用程序(RIA)的框架,它基于ActionScript编程...