[LayaAir 2.0]Laya2.0 内嵌模式、加载模式、分离模式、文件模式的场景加载创建和场景打开关闭
环境:JavaScript LayaAir 2.0.0 beta3 LayaAir IDE 2.0.0 beta3
laya2场景发布模式有4种:内嵌模式、加载模式、分离模式、文件模式,laya2默认为文件模式
新建4个项目对应不同模式的使用,项目的ui结构是2个场景,都在test目录下,分别为:Laya.scene和Version.scene
代码结构:新建一个LayaUI.js
最终目的:在舞台显示2个场景组合成的Laya2.0,Laya.scene通过new LayaUI类来创建显示,Version.scene直接创建
1.内嵌模式
当前版本内嵌模式发布没有数据,直接跳过
(正常应该发布到src/ui目录下一个ui类数据的js文件)
2.加载模式
发布后bin目录下会有一个ui.json文件里面保存着场景数据
加载模式第一步就是加载ui.json赋值到Laya.View.uiMap
接下来就是创建场景显示场景,主要API就是Scene类的createView方法,参数是场景json数据
3.分离模式
发布后bin目录下会出现对应的目录的场景文件
分离模式不像加载模式必须加载ui.json,可以用到哪个场景加载哪个json,json过大提前预加载比较好
接下来创建场景显示场景,主要API就是Scene类的loadScene方法,参数是场景json文件路径
4.文件模式
和分离模式一样,差别在于生成场景类,JavaScript语言发布数据没有场景类
总结:laya2默认文件模式,内嵌和加载模式都会导致项目ui文件过大,分离模式和文件模式基本一样,推荐使用文件模式。上面代码逻辑方式都是flash的逻辑方式,laya2向组件化靠拢封装了场景Scene类一系列API,根据API来写一个场景的创建和关闭。
场景的创建和关闭
主要使用Scene类的close和open方法以及静态方法Scene.close、Scene.open和Scene.closeAll
项目设置:
ui结构:Laya.scene添加几个按钮并设置runtime逻辑类(目前版本拖入JS到runtime如果JS文件路径在Scrips下需要加上./否则编译报错),新建一个LayaIde.scene场景
代码结构:Main.js和上面不一样,不做任何更改项目已经设置起始场景Laya.scene,LayaUI.js是Laya.scene的runtime逻辑类,代码如下
项目下载:
laya2场景发布模式有4种:内嵌模式、加载模式、分离模式、文件模式,laya2默认为文件模式
新建4个项目对应不同模式的使用,项目的ui结构是2个场景,都在test目录下,分别为:Laya.scene和Version.scene
代码结构:新建一个LayaUI.js
最终目的:在舞台显示2个场景组合成的Laya2.0,Laya.scene通过new LayaUI类来创建显示,Version.scene直接创建
1.内嵌模式
当前版本内嵌模式发布没有数据,直接跳过
(正常应该发布到src/ui目录下一个ui类数据的js文件)
2.加载模式
发布后bin目录下会有一个ui.json文件里面保存着场景数据
加载模式第一步就是加载ui.json赋值到Laya.View.uiMap
接下来就是创建场景显示场景,主要API就是Scene类的createView方法,参数是场景json数据
3.分离模式
发布后bin目录下会出现对应的目录的场景文件
分离模式不像加载模式必须加载ui.json,可以用到哪个场景加载哪个json,json过大提前预加载比较好
接下来创建场景显示场景,主要API就是Scene类的loadScene方法,参数是场景json文件路径
4.文件模式
和分离模式一样,差别在于生成场景类,JavaScript语言发布数据没有场景类
总结:laya2默认文件模式,内嵌和加载模式都会导致项目ui文件过大,分离模式和文件模式基本一样,推荐使用文件模式。上面代码逻辑方式都是flash的逻辑方式,laya2向组件化靠拢封装了场景Scene类一系列API,根据API来写一个场景的创建和关闭。
场景的创建和关闭
主要使用Scene类的close和open方法以及静态方法Scene.close、Scene.open和Scene.closeAll
项目设置:
ui结构:Laya.scene添加几个按钮并设置runtime逻辑类(目前版本拖入JS到runtime如果JS文件路径在Scrips下需要加上./否则编译报错),新建一个LayaIde.scene场景
代码结构:Main.js和上面不一样,不做任何更改项目已经设置起始场景Laya.scene,LayaUI.js是Laya.scene的runtime逻辑类,代码如下
项目下载:
没有找到相关结果
已邀请:
要回复问题请先登录
9 个回复
Aar0n
赞同来自: tea
少玉
赞同来自:
happyfire
赞同来自:
happyfire
赞同来自:
我看了下IDE自动生成的3d模板工程里面,整个项目设置是文件模式,但是test scene是设置为分离模式的,然后test scene编译后就有场景类可以使用。我一开始自己的scene没去设置(也就是使用默认)没有场景类生成,导致不能像test scene那样写runtime逻辑。所以查了一下才发现2.0推荐并默认设置为文件模式,其实没有场景类生成。
那么2.0文件模式,应该怎么用呢,有什么例子吗
爱的誓言
赞同来自:
大风起兮云飞扬
赞同来自:
情至深时人孤独
赞同来自:
Laya.Scene.open 方式 无法在构造函数类获取到子节点,怎么解决?貌似没有加载完毕,但是又没有 compelet事件。伤脑筋
Yangcy
赞同来自:
CloudFlame
赞同来自: