测试环境:
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:\testappas\proj.android\app\src\main\res
将所有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));
}
}
五 热更新
待续...