flex集成IFrame,IFrame集成UnityWebPlayer直接通讯调用解决方式
做Web开发一般是flex与JS交互,UnityWebPlayer与JS交互。
它们之间相互调用比較常见。
/**
* Flex调用Javascript函数
* @params functionName:String Javascript函数名称
* @params ...params Javascript函数參数
* @return 返回Javascript函数的return内容
**/
ExternalInterface.call(functionName:String, ...params);
/**
* Javascript调用Flex函数
* @params functionName:String Javascript调用Flex函数名
* @params closure:Function Flex将要调用的函数
* @return void
**/
ExternalInterface.addCallback(functionName:String,closure:Function);
JS调用Unity web Content函数
<script type="text/javascript" language="javascript">
<!--
//initializing the WebPlayer
var u = new UnityObject2();
u.initPlugin(jQuery("#unityPlayer")[0], "Example.unity3d"); function SaySomethingToUnity()
{
u.getUnity().SendMessage("MyObject", "MyFunction", "Hello from a web page!");
}
-->
</script>
在Unity web player中须要有一个“MyObject”的GameObject对象,而且附加一个带有“MyFunction”函数的脚本:
function MyFunction(param : String)
{
Debug.Log(param);
}
unity web player调用网页中JS函数:
unity中增加该脚本调用
Application.ExternalCall( "SayHello", "The game says hello!" );
在web页面中须要定义一个叫 SayHello() 函数: <script type="text/javascript" language="javascript">
<!--
function SayHello( arg )
{
// show the message
alert( arg );
}
-->
</script>
以上两种交互方式是比較经常使用的,近期一个项目遇到了一个特殊的应用需求。须要把unity web player的页面签入到flex应用框架中。而且完毕flex与unity web player直接的交互。
为了完毕这项需求须要解决例如以下问题:
1、怎样把html页面签入到flex容器中;
2、怎样实现flex与unity web player直接的通讯问题;
问题1,通过收搜得出眼下flex中有一个iframe插件,能够解决。
步骤: 1、在此链接中下载现成的资料 https://github.com/flex-users/flex-iframe/downloads 我下的是最新的 flex-iframe-1.5.1.zip 解压后,在 flex-iframe-1.5.1\sources\library\flex-iframe\src\com\google\code\flexiframe 这个路径中能够找到两个AcriptScript 类文件 2、将IFrame.as、IFrameExternalCalls.as 存放在Flex项目中。我将它拷贝到Class文件中或者引用bin\flex-iframe-1.5.swc 3、新建立 MXML应用程序,加入红色部分代码就可以。 source里填充要显示的页面 <? xml version="1.0" encoding="utf-8"? >
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:flexiframe="http://code.google.com/p/flex-iframe/"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
xmlns:iframe="Class.*">
<fx:Declarations>
<!-- 将非可视元素(比如服务、值对象)放在此处 -->
</fx:Declarations>
<iframe:IFrame id="iFrame" source="http://www.baidu.com/" width="100%" height="100%"/>
</s:Application>
问题2,解决flex与unity web player直接通讯。
unity web player调用flex函数,关键是通过图上红色标注,事实上非常好理解就是iframe签入到了Flex的HTML中,通过iframe中脚本发现SwfContent对象就能够实现调用flex中的函数,实现与flex通讯。
flex集成IFrame,IFrame集成UnityWebPlayer直接通讯调用解决方式的更多相关文章
- iframe于iframe页面之间的函数相互调用
因为iframe页面于包括父页面在内的其他页面通讯有跨域问题,所以只有在服务器环境下或者火狐浏览器下才能测试. 在iframe页面调用父页面的函数采用parent,例子:在父页面有一个say()函数, ...
- iframe 简单的一个用法 局部调用
<iframe id="main_com" name="main_com" width="100%" height="750 ...
- extjs folder is lost解决方法 和 FineUI主题切换时 iframe内的内容主题不变的解决方法
错误原因:extjs包和FineUI版本不一致 或者是 webconfig配置中 没有设置为任何人可访问 解放方法下载和FineUI版本相同的extjs包就ok了 解决方法:FineUI主题切换时 ...
- 拥有iframe页面的子父类窗口调用JS的方法,并且注意的事项
一.前言 我页面用的是EasyUI的弹出窗口里面嵌入一个iframe.第一:父窗口打开子窗口是一个新增用户信息的iframe子页面,点击保存后,子窗口iframe则去调用父窗口的function cl ...
- 环信 之 iOS 客户端集成四:集成UI
在Podfile文件里加入 pod 'EaseUI', :git => 'https://github.com/easemob/easeui-ios-cocoapods.git' 然后在终端中的 ...
- V9发布内容时保留框架<iframe></iframe>
有些时候,发布文章内容的时候需要用到<iframe></iframe>框架站外内容最近在发布内容时就遇到这个问题,<iframe></iframe>给转 ...
- [Selenium]当DOM结构里面有iFrame,iFrame里面是html,怎么send keys to 里面的body,怎么用Assert进行验证?
我在测试的过程中遇到一个这样的问题,我无法通过CssSelector找到iFrame下边的html: <div id="mailEditorDiv" style=" ...
- nginx和Tomcat集成后发生的重定向问题分析和解决
nginx和Tomcat集成后发生的重定向问题分析和解决 Tomcat前端配置一个HTTP服务器应该是大部分应用的标配了,基本思路就是所有动态请求都反向代理给后端的Tomcat,HTTP服务器来处 理 ...
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps Office新的App模型
BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps Office新的App模型 Office 2 ...
随机推荐
- 【Mysql数据库】知识点总结
本文转载自:http://www.cnblogs.com/tonghun/p/7191131.html 一 数据库常用操作 mysql -u+username -p+password:登陆数据库管理系 ...
- 页面布局排版-block,inline,float,relative,absolute等
1.span和div的区别 div是块元素(block),span是行内元素(inline): span什么事也不会做,它存在的目的在与为开发者给它所围绕的元素指定样式.div类似,不过它引入了行分隔 ...
- PHP调用webService WSDL 接口发送邮件
1.什么是 webService WSDL? webService WSDL 暴露一些接口给第三方调用,在底层会转化成一个HTTP请求,主要是不同语言之间为了通讯的一个协议,比如发送邮件的系统是用J ...
- SolrCloud架构
原文链接 https://blog.csdn.net/dingzfang/article/details/42804489 1 核心概念 Collection Shard 均为逻辑上的概念 Core为 ...
- 使用inline-box代替float
在网页布局中,使用float有不少好处,可以为你带来更加自由的布局,还可以自动根据浏览器改变布局效果.但是使用多了你也可能发现有一个问题,使用了float之后,外层的div不会撑高,导致布局出现坍塌. ...
- [NOIP2000] 提高组 洛谷P1017 进制转换
题目描述 我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式.例如:123可表示为 1*10^2+2*10^1+3*10^ ...
- BZOJ1573: [Usaco2009 Open]牛绣花cowemb
求半径d<=50000的圆(不含边界)内n<=50000条直线有多少交点,给直线的解析式. 一开始就想,如果能求出直线交点与原点距离<d的条件,那么从中不重复地筛选即可.然而两个kx ...
- 7.1——函数的定义,参数传递,return语句
函数的定义: (1)函数体是一个作用域,函数体是一个语句块,定义了函数的具体操作 (2)函数的形参类似于局部变量,只是区别是它是在函数的形参列表中定义的. (3)C++是一种静态强类型语言,对于每一次 ...
- js命名
JS变量名前加 _ 与 $ 的区别: 下划线一般当做私有属性, 业界会比较常用$开头作为框架.库的关键词前缀,目的是避免命名冲突
- poj -1185 炮兵阵地 (经典状压dp)
http://poj.org/problem?id=1185 参考博客:http://poj.org/problem?id=1185 大神博客已经讲的很清楚了,注意存状态的时候是从1开始的,所以初始化 ...