功能描述:在Flex中嵌套框架,并且进行数值传递
1、编辑Flex框架组件iFrame.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/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;
/**
* Move iframe through ExternalInterface. The location is determined using localToGlobal()
* on a Point in the Canvas.
**/
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);
}
/**
* The source URL for the IFrame. When set, the URL is loaded through ExternalInterface.
**/
public function set source(source: String): void
{
if (source)
{
if (! ExternalInterface.available)
{
throw new Error("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);
moveIFrame();
}
}
public function get source(): String
{
return __source;
}
/**
* Whether the IFrame is visible.
**/
override public function set visible(visible: Boolean): void
{
super.visible=visible;
if (visible)
{
ExternalInterface.call("showIFrame");
}
else
{
ExternalInterface.call("hideIFrame");
}
}
]]>
</mx:Script>
</mx:Canvas>
2、放置到要使用框架的Flex中index.mxml,并写入引用哪个frame.html
<ui:IFrame id="iFrame" source="frame.html" visible="true" width="100%" height="300"/>
3、在引用框架的Flex生成页index.html里加入:
<1. wmode set to opaque
在调用swf的后面加上"wmode","opaque"
例如:"pluginspage", "http://www.adobe.com/go/getflashplayer",
"wmode","opaque"
<2. the moveIFrame,hideIFrame,showIFrame,loadIFrame methods
<script language="JavaScript" type="text/javascript">
<!--
// -----------------------------------------------------------------------------
// Globals
// Major version of Flash required
var requiredMajorVersion = 9;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Minor version of Flash required
var requiredRevision = 28;
// -----------------------------------------------------------------------------
// -->
function moveIFrame(x,y,w,h) {
var frameRef=document.getElementById("myFrame");
frameRef.style.left=x;
frameRef.style.top=y;
var iFrameRef=document.getElementById("myIFrame");
iFrameRef.width=w;
iFrameRef.height=h;
}
function hideIFrame(){
document.getElementById("myFrame").style.visibility="hidden";
}
function showIFrame(){
document.getElementById("myFrame").style.visibility="visible";
}
function loadIFrame(url){
document.getElementById("myFrame").innerHTML = "<iframe id='myIFrame' src='" + url + "'frameborder='0'></iframe>";
}
//要调用的内容,加载前三个就可以了,后面这个函数是用来调用返回值
function getEditorText(){
return document.getElementById("myIFrame").contentWindow.GetEditorText1();
}
</script>
<3. the 'myFrame' div
在</body>这前写入:
<div id="myFrame" style="position:absolute;background-color:transparent;border:0 px;visibility:hidden;"></div>
4、在Flex页面index.mxml输入的函数值,调用index.html中的'getEditorText'函数,并且写入到text1.text中
text1.text=ExternalInterface.call('getEditorText',param1,param2,param3,...)
getEditorText:函数名称
param:参数值
5、在生成页中取得框架中的函数
框架内的frame.html,放置在head之间:
function GetEditorText1(){
return getHTML(params);
index.html生成页的调用,设置在head之间:
function getEditorText(){
return document.getElementById("myIFrame").contentWindow.GetEditorText1();
}
后记:实际中在这里只是调用一个层放在对应位置而已,当我们在Flex中做申缩动作时,层也要跟着改变,我是如此处理的:
设置move或show事件,当move或show时则调用:iFrame.source = "frame.html"
参考:
http://www.cnflex.cn/html/mxml/20070321/95.html
http://www.cnblogs.com/dannyr/archive/2004/11/24/68026.aspx
http://renaun.com/flex2/posts/flexsearch/index.html(有源码下载)
分享到:
相关推荐
在"高仿微信"项目中,ZZFLEX可能被用来构建聊天界面、联系人列表等,提供流畅的滚动效果和动态加载数据的能力。重构时,开发者可能利用ZZFLEX的灵活性优化布局,提高代码可读性和可维护性。 在这个代码重构项目中,...
将项目下载到本地后,把ZZFLEX拖入到你的项目中,即可正常使用。 2、CocoaPods方式 pod 'ZZFLEX', :git => 'https://github.com/tbl00c/ZZFLEX.git' 功能模块 目前ZZFLEX主要包含以下6个功能模块: 一、Foundation...
ZZFLEX主要包含两大部分: 1、为常用控件增加了链式API拓展,可以任性的点点点了 UIButton *butt 0, 100, 35)).title(@"hello").titleColor([UIColor blackColor]).cornerRadius(3.0f).view; 2、数据驱动的列表页...
base zz zz zz zz zz base zz zz zz zz zz base zz zz zz zz zz base zz zz zz zz zz
- **事件和队列组件管理**:MTS提供了发布和提交事件的能力,以及队列组件功能,使得组件之间的通信更加灵活,便于实现多组件间的协作。 在MTS中注册COM组件的详细步骤如下: **步骤一**:通过【开始菜单】→...
Flex提供了强大的数据可视化工具以及丰富的用户界面组件库,使得开发者能够轻松创建动态的应用程序。 #### 二、Flex安装与环境配置流程 ##### 1. 准备工作 在开始安装之前,确保计算机上已经安装了以下软件: - **...
在IT行业中,React框架是目前前端开发领域中最受欢迎的库之一,它允许开发者构建高性能、可复用且组件化的用户界面。"react-RMind"是一个基于React Hooks和flex布局实现的思维导图工具,它充分利用了React的强大特性...
要将高德地图集成到ArcGIS for Flex应用中,首先需要理解ArcGIS的图层概念。图层是地图的基础元素,可以包含各种地理数据,如矢量图层、影像图层或地形图层。在本例中,我们将创建一个自定义图层来显示高德地图的...
ZZFLEX是一个强大的iOS UI敏捷开发框架,它基于Apple的UIKit框架进行构建,旨在提高开发者在构建用户界面时的效率和灵活性。这个框架的核心特点包括对常见UI控件的链式API扩展、一个数据驱动的列表展示框架以及一个...
在CAD中想要快速测量长度,在CAD工具栏找到加载应用程序,再点击加载 加载成功后在输入栏输入“zz”(不分大小写)在选择你需要测量的线段即可。
标题中的“ZZ: 时间管理方法(转贴)”表明这是一篇关于时间管理的文章,可能是从其他地方转载而来。从描述中的“博文链接:https://lkfnn.iteye.com/blog/33600”我们可以推测,这是一篇在ITeye技术社区发表的博客...
在这个特定的项目中,我们讨论的是一个由Delphi开发的聊天软件,该软件利用了Web技术以及网页中嵌入的ActiveX技术,这被称为Delphi的ActiveForm技术。 ActiveForm是Delphi提供的一种特性,它允许开发者将Windows...
在MATLAB开发中,图形组件的使用是创建交互式用户界面和进行图像处理的重要部分。本文将深入探讨如何在MATLAB中查找和操作图形组件,特别是在图像处理与计算机视觉领域中的应用。 首先,"图表连接的组件(连接矩阵...
在“zz-doctor”项目中,我们能看到Android的四大组件——Activity、Service、BroadcastReceiver和ContentProvider的运用。Activity是用户界面的主要构成部分,Service用于后台运行任务,BroadcastReceiver处理系统...
ZZ561401.CAB ZZ561401.CAB ZZ561401.CAB
使用LoopSim方法,我们合并ZZ和ZZ + jet的NLO QCD结果,并获得ZZ产生的近似NNLO预测。 还包括对ZZ过程的精确胶子融合环平方的贡献。 最重要的是,我们将来自胶子-胶子通道的胶子-融合ZZ + jet贡献添加到我们的合并...
在这个压缩包中,我们可以期待找到如下的文件结构和组件: 1. **前端界面文件**:可能包括HTML、CSS和JavaScript文件,用于构建用户界面和处理表单提交。 2. **后端逻辑文件**:可能包含PHP或ASP等服务器端脚本,...
wincc SIMATIC WinCC是第一个使用最新的32位技术的过程监视系统,具有良好的开放性和灵活性。 从面市伊始,用户就对SIMATIC WinCC印象深刻。
Vizzuality组件是我们在项目中使用的React组件的集合。 组件 :带有控件,缩放和动画的3D地球。 它使用WebGL和three.js。 :Spinner是一个可以旋转的图标。 如何使用 您需要先配置nodejs和npm,然后才能使用以下...