--- 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); ```