egret-docs-master/Native/support/native/other/README.md

104 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
id: other.html
title: 其他原生支持
---
## 开启优化开关
**适用于Android和iOS support 3.2.2及以上。**
**功能:**开启support对部分功能的优化。这些优化项暂时是默认关闭的稳定之后会直接添加到support中。
**使用方法:**在native_require.js的egretInit函数中修改egret_native.featureEnable的参数。例如打开渲染效率的优化方法如下
~~~
var feature = {
cmdBatch : true
};
egret_native.featureEnable(feature);
~~~
**参数:**一个js对象目前可用的属性有
cmdBatch: 减少引擎与support的数据传输次数提高渲染效率3.2.2添加)。
pretreatTexture提高一张纹理被多次使用时的渲染效率3.2.4添加)。
## 热更新地址不能访问时启动最后一次更新的游戏包
**适用于iOS support 3.2.2及以上。**
**功能:**热更新地址不能访问时启动最后一次更新的游戏。
**使用方法:**在启动游戏之前设置访问热更新地址的等待时间。修改ViewController的runGame方法在启动EgretRuntime前调用
![](p1.png)
**参数:**等待时间(秒)
## 切换音频解码方式
**适用于Android support 3.2.2及以上。**
**功能:**选择是否默认优先使用PCM解码。默认是开启的在大多数情况下使用PCM解码速度更快但是有的音频的时间会很长。
**使用方法:**在调用play事件之前使用egret_native.setPcmDecodeEnable来开启或关闭。
**参数:**true/false
## 设置游戏背景透明
**适用于Android support 3.2.1及以上iOS support 3.2.4及以上。**
**功能:**设置游戏所在View的背景透明。
**使用方法:**
Android
在 getGameOptions 里添加属性:
~~~
options.put(EgretRuntime.OPTION_GAME_GLVIEW_TRANSPARENT, "true");
~~~
**说明:**背景设置为透明后,场景后面会有一个 EditText ,可以通过
~~~
((ViewGroup)gameEngineView).removeViewAt(0);
~~~
去掉。保留这个控件是为了兼容2.X 的引擎默认是存在的如果使用3.0以上的引擎版本则可以去掉。
iOS:
在 runGame 中为 _options 添加属性:
~~~
_options[@OPTION_GAME_GLVIEW_TRANSPARENT] = @"true";
~~~
## 设置游戏所在View在最顶层Android
**适用于Android support 3.2.1及以上。**
**功能:**修改游戏所在View的层级
**使用方法:**将获取 gameEngineView 的方法由 game_engine_get_view 改为 game_engine_get_view_set_top ,将游戏所在的 View 放到最顶层。
## 获取原生设备的电池电量信息
**适用于Android/iOS support 3.1.4及以上。**
**功能:**获取原生设备的电池电量信息。
**使用方法:**
```javascript
var json_listene = { action: "listenDeviceInfoChanged" };
var jsonStr_listene = JSON.stringify(json_listene);
egret.ExternalInterface.call("egret.deviceInfo", jsonStr_listene);
egret.ExternalInterface.addCallback("egret.deviceInfo", function (message) {
console.log("message form native : " + message);
});
var json = { action: "getCurrentBatteryInfo" };
var jsonStr = JSON.stringify(json);
egret.ExternalInterface.call("egret.deviceInfo", jsonStr);
```