二 Android Studio 打包EgretApp (开机画面、横竖屏、调试、和原生交互)

测试环境:

Windows7

Egret Engine 5.0.14

Egret support 5.0.12

Android Studio 2.3  

目录:

一 修改开机画面

二 横竖屏设置

三 修改代码后调试,输出console

四 和原生交互

五 热更新

一 修改开机画面

找到项目目录下AndroidManifest.xml

注释掉图中的intent-filter,并把SplashActivity的inttent-filter注释取消。这样就有了开机的画面。

  更换启动的开机图片

找到项目路径下的drawable和其他mipmap-xxx文件夹,

J: estappasproj.androidappsrcmain es

将所有splash_img.png图片替换成你自己的开机画面 (我把图片尺寸换了个1280x960的直接报错,图片不能太大)

二 横竖屏设置

在AndroidManifest.xml找到android:screenOrientation,默认是竖屏"portrait",设置值为"landscape"为横屏即可。

设置为横屏后,发现开机画面还是竖屏的....

需要把开机画面的activity也加一个横屏设置。

好了这样就是横屏游戏了。

三 Android和Egret的调试

每次修改egret项目后,发布时勾选runtime

则会自动更新包到android_as_path的路径下,这时你只要再次run一次android studio项目就可以运行新的代码了

Egret中输出console可以在android studio中看到

我在Egret制作一个按钮,按一下console.log("按一下输出一个console"),如下图,可以在Android Monitor看到。

但是Android的java中的Log.d()信息,始终打印不出来,百度后也未解决...= =! 

四 和原生交互

下面是一个Egret向Android原生层请求登录的例子

Android层:

src/main/java/org.egret.java/testapps/testapps


private void setInterfaces() {      //监听Egret发送来的消息 gameEngine.setRuntimeInterface("reqLogin", new IRuntimeInterface() { @Override public void callback(String message) { Log.d("externalInterface", "接收到Egret的登录请求 : " + message);          
          
//向Egret发送消息 gameEngine.callEgretInterface("revLogin", "登录成功"); } }); }

Egret层:

/**
 * 主页场景
 * @author chenkai 2018/1/8
 */
class HomeScene extends eui.Component{
	private loginBtn:eui.Button;

	public constructor() {
		super();
		this.skinName = "HomeSceneSkin";
	}

	protected childrenCreated(){
//点击登录 this.loginBtn.addEventListener(egret.TouchEvent.TOUCH_TAP, this.onTouchTap, this);
         //监听Native发来的消息 egret.ExternalInterface.addCallback("revLogin", function (message:string) { console.log("接收Native登录结果: " + message); }); } private onTouchTap(){ console.log("请求登录"); let json = { account:"chenkai", password:"123456" };
           //向Native发送消息 egret.ExternalInterface.call("reqLogin", JSON.stringify(json)); } }

  

五 热更新

待续...

原文地址:https://www.cnblogs.com/gamedaybyday/p/8245510.html