测试环境:
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)); } }
五 热更新
待续...