laya2.0技术文档: 提示:2.0之后新版本安装后无法打开代码编辑器需自行安装。
www.layabox.com API
Laya 项目目录结构
1:.laya文件夹存放项目开发中运行中的一些配置信息;
2:bin文件夹 存放当前项目的输出文件;
3:laya资源项目目录:
assets 存放项目的资源;
pages 存放项目 创建页面布局生成的文件,页面/场景;
4: libs项目的智能提示文件,开发者假如有三方的类库使用,相关的.d.ts文件放在这个目录下;
5:src用来存放项目的代码文件;
6:项目配置文件:
jsconfig.json,
项目名.laya:项目配置文件,文件内记录了当前项目的项目名称、使用的类库版本号和项目类型;
7:main.js与game_config.js 启动脚本和项目配置文件;
*常见组件固定接口(被laya引擎调用):(调用级别↑) 选取类F12可查看类的接口
onAwake(){};
//组件被激活后执行。此时所有节点和组件均已创建完毕,此方法只执行一次 虚方法,使用时重写覆盖即可
onDestrov(){};
//手动调用节点销毁时执行 虚方法,使用时重写覆盖即可
onDisable(){};
//组件被禁用时执行,比如把节点从舞台移除后 虚方法,使用时重写覆盖即可
onEnable(){};
// 组件被启用后执行 比如节点被添加到舞台后 虚方法,使用时重写覆盖即可
onStart() {
;}
// 第一次执行update之前执行,只会执行一次 此方法为虚方法,使用时重写覆盖即可
onUpdate(){};
//每帧更新时执行,使用时重写覆盖即可
onLateUpdate(){};
//每帧更新时执行,在update之后执行,使用时重写覆盖即可
laya引擎运行过程:
1.引擎加载场景;
2.能够找到场景中的每个 节点(场景中的任何事物);
3.由节点再找到节点上的每个组件(可理解为绑定的代码脚本)实例;
4.特定的时期,游戏引擎调用组件实例特定的入口;
laya脚本原则:
创建一个脚本组件类的模板 laya.Script;
添加组件,找到这个类,编辑器NEW类的实例
打开gameconfig.js,来注册这个类; (不注册即使代码正确运行会报错)
基本原则:1.脚本要控制哪个节点,你就挂哪个节点;
2.如果是全局的管理类,挂根节点!
ES6新特性
1.export/import 导出/导入代码模块
2.Package 代码包概念;
不同开发者之间编写代码,可能会冲突,定义包名.类名来确定类型
Laya节点
1.在laya中面板显示的所有对象 都在laya.display这个包里面; this.owner is Node,is Sprite.
2.节点:laya.display.Node
精灵:laya.display.Sprite继承laya.display.Node;
场景:laya.display.Scene继承laya.display.Sprite;
舞台:laya.display.Stage继承laya.display.Sprite;
文本:laya.display.Text 继承laya.display.Sprite;
laya2.0:
GameConfig.js
写代码时 创建游戏脚本最好在src新建一个子目录不要在src根目录下创建,不然每次调试得在GameConfig.js内对新创建的脚本进行注册。
编译的时候自动生成的文件,人为不要修改、
要显示调试窗口,可以在菜单项目设置里面进行处理(F9) (代码里可直接在GameConfig.JS里找到debug 将后边的false改为true)
this.XX —>当前的组件实例
每一个组件实例.owner成员,指向他所在的节点
例: console.log(this.owner); 组件所在节点对象
节点常用属性:
名字 name
位置x,y
大小 width, height
旋转 rotation
缩放 scaleX , scaleY
扭曲 skewX,skewY
可见性 visible
透明度 alpha
中心点 piovtX,piovtY
调用其他组件实例方法
import XX from “路径”(置顶)
var inst = this.owner.getComponent(XX);
inst.XXXX();
代码添加组件到节点:addComponent()
编辑器绑定的数据类型: /** @prop {name:XX, tips:"", type:XX, default:XX}*/
基本数据类型:Int,Number,String,bool
场景节点类型: Node,不需要带包名
用代码添加一个节点
addChild/addChildren
例:
//添加一个文本到owner节点下
var txt = new Laya.Text();
txt.color = “#FF0000”;
txt.text = “Blake”;
this.owner.addChild(txt);