- 用户指南
- 资源商店 (Asset Store)
- 资源服务器 (Asset Server)(仅限团队许可证)
- 缓存服务器(仅限团队许可证)
- 幕后场景
- 创建游戏
- 运行时实例化预设 (Prefabs)
- 变换 (Transforms)
- 物理
- 添加随机的游戏元素
- 粒子系统(Particle Systems)
- Mecanim 动画系统
- 旧动画系统
- 导航网格 (Navmesh) 和寻路 (Pathfinding)(仅限专业版 (Pro))
- Sound (音频侦听器)
- 游戏界面元素
- 多玩家联网游戏
- iOS 开发入门
- Android 开发入门
- Blackberry 10 开发入门
- Metro:入门指南
- 本地客户端开发入门
- FAQ
- Advanced
- Vector Cookbook
- 资源包(仅限专业版)
- Graphics Features
- 资源数据库 (AssetDatabase)
- 构建播放器管道
- 分析器(仅限专业版)
- 光照贴图快速入门
- 遮挡剔除(仅限专业版)
- 相机使用技巧
- 运行时加载资源
- 通过脚本修改源资源
- 用程序生成网格几何体
- 富文本
- 在 Unity 工程 (Project) 中使用 Mono DLL
- 事件函数的执行顺序
- 移动优化实用指南
- Unity XCode 工程结构
- 优化图形性能
- 减少文件大小
- 理解自动内存管理
- 平台依赖编译
- 泛型函数
- 调试
- 插件(专业版/移动版特有功能)
- 文本场景文件格式(仅限专业版)
- 流媒体资源
- 启动时运行编辑器脚本代码
- 网络模拟
- VisualStudio C 集成
- 分析
- 检查更新
- 安装多版本 Unity
- 故障排除
- Unity 中的阴影
- Unity 中的 IME
- 对集成显卡进行优化
- 网络播放器 (Web Player) 部署
- 使用网络播放器中的信任链系统
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
示例: 浏览器 JavaScript 通信
此示例将介绍 AS3 代码如何与浏览器中的 JavaScript 通信。 我们以 ExternalInterface ActionScript 类为例。
运行上述类时,BrowserCommunicator.TestCommunication() 函数将注册回调函数,以便浏览器 JavaScript 稍后调用此回调函数。 ActionScript 稍后将调用浏览器 JavaScript,这将弹出警报窗口。 然后,JavaScript 将调用突出显示的 ActionScript 函数,从而完成双向通信试验。
所需的 JavaScript
以下 JavaScript 需要添加至 Unity 发布 SWF 的 html 页面。 这将创建从 ActionScript 中调用的函数:
JavaScript
<script type="text/javascript"> function calledFromActionScript() { alert("ActionScript called Javascript function") var obj = swfobject.getObjectById("unityPlayer"); if (obj) { obj.callFromJavascript(); } } </script>
BrowserCommunicator.as(和匹配 C# 类)
ActionScript 3
package { import flash.external.ExternalInterface; import flash.system.Security; public class BrowserCommunicator { //Exposed so that it can be called from the browser JavaScript. public static function callFromJavascript() : void { trace("Javascript successfully called ActionScript function."); } //Sets up an ExternalInterface callback and calls a Javascript function. public static function TestCommunication() : void { if (ExternalInterface.available) { try { ExternalInterface.addCallback("callFromJavascript", callFromJavascript); } catch (error:SecurityError) { trace("A SecurityError occurred: " + error.message); } catch (error:Error) { trace("An Error occurred: " + error.message); } ExternalInterface.call('calledFromActionScript'); } else { trace("External interface not available"); } } } }
类的 C# 虚拟实现:
C#
[NotConverted] [NotRenamed] public class BrowserCommunicator { [NotRenamed] public static void TestCommunication() { } }
如何试验
只需调用 BrowserCommunicator.TestCommunication() 即可调用双向通信试验。
潜在问题
安全沙箱冲突
A SecurityError occurred: Error #2060: Security sandbox violation
发布的 SWF 无权访问 html 文件时将出现上述错误。 要在本地解决此问题,您可以:
- 将包含 SWF 的文件夹添加至全局安全设置面板 (Global Security Settings Panel) 中 Flash Player 信任的位置。
- 托管本地主机上的文件。
有关 Flash 安全沙箱 (Security Sandboxes) 的更多信息,请参阅 Adobe 文档。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论