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通讯。

时间: 2024-08-29 02:58:09

flex集成IFrame,IFrame集成UnityWebPlayer直接通讯调用解决方式的相关文章

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)

3、Jenkins持续集成之持续集成

3.Jenkins持续集成之持续集成.md 配置ansible实现无密钥交互 安装阿里云YUM源码 [[email protected] ~]# cat <<EOF>>/etc/yum.repos.d/epel.repo [epel] name=epel for aliyun baseurl=https://mirrors.aliyun.com/epel/7/x86_64/ enabled=1 gpgcheck=0 [os] name=os for aliyun baseurl=h

iframe 简单的一个用法 局部调用

<iframe id="main_com" name="main_com" width="100%" height="750px" src="lists01.html" scrolling="yes" frameborder="0"></iframe> iframe放到你要插入页面的地方 <a href="lists35.htm

[Selenium]当DOM结构里面有iFrame,iFrame里面是html,怎么send keys to 里面的body,怎么用Assert进行验证?

我在测试的过程中遇到一个这样的问题,我无法通过CssSelector找到iFrame下边的html: <div id="mailEditorDiv" style="display: inline-block;"> <div class="maileditor"> <div style="height:130px;"> <div class="divBody">

BEGINNING SHAREPOINT&amp;#174; 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps Office的JavaScript对象模型

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps  Office的JavaScript对象模型 Office JavaScript对象模型提供给你的Web应用程序和Office host应用程序交流的能力, BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps Office的JavaScript对象模型

BEGINNING SHAREPOINT&amp;#174; 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps Office新的App模型

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps  Office新的App模型 Office 2013中新的App模型和SP2013中App模型工作方式相似.给过去开发者面临的挑战减轻了非常多. BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps Office新的App模型

nginx和Tomcat集成后发生的重定向问题分析和解决

nginx和Tomcat集成后发生的重定向问题分析和解决 Tomcat前端配置一个HTTP服务器应该是大部分应用的标配了,基本思路就是所有动态请求都反向代理给后端的Tomcat,HTTP服务器来处 理静态请求,包括图片.js.css.html以及xml等.这样可以让你的应用的负载能力提高很多,前端这个HTTP服务器主流用的最多的当属 Apache HTTP Server和nginx.今天这篇文章主要讲解的是这种组合的方式的前提下,后端的Tomcat中的app在301跳转的时候遇到的一个问题. 问

V9发布内容时保留框架&lt;iframe&gt;&lt;/iframe&gt;

有些时候,发布文章内容的时候需要用到<iframe></iframe>框架站外内容最近在发布内容时就遇到这个问题,<iframe></iframe>给转义了,保存后变成了&gt iframe,前台显示也是这样,估计是官方为了防止安全,把script.iframe.frame都给转义了稍微修改一下,即可保留<iframe></iframe> 找到\phpcms\libs\functions\global.func.php文件,大

dicom通讯的工作方式及dicom标准简介

转自:http://www.cnblogs.com/assassinx/p/3223460.html 本文主要讲述dicom标准及dicom通讯的工作方式.dicom全称医学数字图像与通讯 其实嘛就两个方面 那就是“存储”跟“通讯”. 文件数据组织方式  网络数据组织方式.文件数据组织方式就是解析静态的dicom文件 在 <dicom格式文件解析器>一文中已经阐述过了 就不再说了.网络数据组织方式 简而言之就是各种协议 命令控制 数据序列化.那么这一章中我们将会讲他,但是进行实际操作将在后面几