layabox
远行MM
这个作者很懒,什么都没留下…
展开
-
LAYA屏幕适配
相关概念1、物理分辨率:简单来讲,就是设备像素,也就是一般人所理解的屏幕尺寸,例如iPhone8 的物理分辨率是1334 × 7502、缩放因子:机型物理分辨率也越来越高,一个point所占用的物理像素越来越高,缩放因子表达式为@nX,也就是在这个机型上1个point 用n×n的物理像素矩阵来表示3、逻辑分辨率:就是就是软件所使用的分辨率。物理分辨率/逻辑分辨率 = 缩放因子4、设备像素比DPR(Device Pixel Ratio):也就是缩放因子,LayaAir引擎中通过La...原创 2020-05-12 12:31:29 · 1911 阅读 · 0 评论 -
Laya自定义页面继承
低版本的Laya页面类型只有View和Dialog,高版本的加了Scene类型,但是开发时可能并不满足于官方默认的这几种自定义页面继承基类。比如需要加入资源管理或者其他项目特殊的功能逻辑等,希望继承自个人编写的页面继承基类。具体操作步骤:1、Alt+W切换到编辑模式2、F9弹出项目设置,低版本和高版本Laya界面可能不一样,但是名字一样,找到页面类型,加入自定义继承基类名字,博主为Ba...原创 2019-11-05 18:02:10 · 1068 阅读 · 1 评论 -
innerHTML内嵌文字图片
经常遇到这种需求(策划特别喜欢),一行文字中间需要嵌入图片,但是这行包括图片的文字又需要根据文字长度或者图片宽度自适应居中。比较原始的方法是每种情况都放进去试下,量坐标,然后写if条件进行判断,不同条件设置不同的坐标实现居中。后来发现LAYA提供的HTMLDivElement支持同时包含文字和图片,引擎在渲染时,如果是文字,则会用HTMLElement进行渲染,如果是图片,则会用HTMLI...原创 2019-09-19 09:56:40 · 2949 阅读 · 0 评论 -
Laya版本管理
1.7.15beta开始,打开发布界面,最后一项是管理是否启用版本管理的功能启用版本管理之后,将会生成带hash的文件名,并生成一个version.json的文件名映射文件,在项目中可以通过使用ResourceVersion类进行版本控制,使用版本控制之后就会在加载时自动去加载带hash的文件名。代码中通过ResourceVersion类加载管理资源版本启用版本管理后,资源名会被加上h...原创 2019-10-16 14:44:29 · 1310 阅读 · 0 评论 -
tab与viewStack
Tab 组件用于定义选项卡按钮组,例如多页面切换显示。ViewStack组件主要用于多页面视图切换。它包含多个子页面,但默认只显示一个,可以通过子页面索引进行显示切换。一般情况我们用它与Tab标签组合制作标签切换页面,表现上类似于页签,不同页面都会显示,但是对应不同的页面,显示不同的状态,有点类似页签。点击tab切换页面内容显示,同时viewStack会切换显示,例如显示不同的页签图片...原创 2019-03-19 16:02:23 · 526 阅读 · 3 评论 -
对象池
这个是官方解释Pool是对象池类,用于对象的存贮、重复使用。对象池优化是游戏开发中非常重要的优化方式,也是影响游戏性能的重要因素之一。在游戏中有许多对象在不停的创建与移除,比如角色攻击子弹、特效的创建与移除,NPC的被消灭与刷新等,在创建过程中非常消耗性能,特别是数量多的情况下。对象池技术能很好解决以上问题,在对象移除消失的时候回收到对象池,需要新对象的时候直接从对象池中取出使用...原创 2019-03-18 18:07:46 · 1666 阅读 · 0 评论 -
pos极速模式
pos pos(x:Number, y:Number, speedMode:Boolean = false):Sprite 设置坐标位置。相当于分别设置x和y属性。 因为返回值为Sprite对象本身,所以可以使用如下语法:spr.pos(...).scale(...); 以上是官方API解释在设置x,y属性时,正常情况下,默认不使用极速模式,调用this.x...原创 2019-03-20 11:36:23 · 208 阅读 · 0 评论 -
laya设置数字的两种方法
1、laya自带组件Font_Clip,直接调用接口fontClip.value = String(value);即可2、美术给的资源为单张的数字资源,或者包含小数点点特殊符号时,这时候方法一用起来不再方便,当然,这里可以用最原始的方法,添加多张img,然后根据实际数据设置skin,并调整img的位置实现居中,这么做也不是不可以,但是一张两张图可以这么做,如果需要一次显示10张,100张(...原创 2019-03-11 17:44:49 · 1812 阅读 · 0 评论 -
图片拖拽效果
游戏中比较常见的拖拽效果,例如拖动技能icon或者其他道具icon到指定位置,松开之后,判断能否使用。下面是用laya与as3实现拖拽效果的代码(需求是拖拽icon,并且,icon拖拽道具到指定位置时如果满足条件,该指定位置的item高亮显示)先在UI编辑器里面给各个item添加name,博主这里假设icon只有2个,并给name分别赋值为icon0,icon1,对此,单纯的拖拽和松开鼠标...原创 2019-03-19 21:50:18 · 1105 阅读 · 0 评论 -
layabox list item居中
项目开发中,经常遇到list的渲染item需要居中的需求,刚开始做这个的时候,很傻逼地用chrome一个个调好坐标,然后在代码里面再根据item的数量设置list的坐标,这样做不仅费时,而且肉眼比较难看出一两个像素的布局中差距。比较好的做法是,直接用代码实现居中,不写死坐标值var len:int = list.length;var spaceNum:int = len - 1;l...原创 2018-12-23 18:49:13 · 1804 阅读 · 0 评论 -
MAC 搭建LAYABOX AS3环境
一、准备工作先登录laya官方网站,下载引擎和IDE,如图,把红框内的LayaAir引擎和LayaIDE都下载下来,在桌面创建新的文件夹layaair(可以叫别人名字,但是要记住名字),把下载的引擎和IDE拖到layaair文件夹。然后下载安装Chrome浏览器, 当执行AS3代码编译后,默认调用Chrome浏览器打开运行项目,需要安装此浏览器进行项目调试选择相应语言的引擎进行下载;下载...原创 2019-04-11 11:10:33 · 1363 阅读 · 0 评论 -
progressBar组件
LayaIDE自带的特殊组件一共有5个,分别是垂直滑动条组件VSlider、水平滑动条组件HSlider、进度条组件ProgressBar、垂直滚动条组件VScrollBar、水平滚动条组件HScrollBar。VScrollBar和HScrollBar常用于list和panel滑动,ProgressBar用于各种进度,如完成度、加载进度等等。这三种较为常见。下面说下进度条组件的使用特...原创 2019-04-02 11:33:25 · 407 阅读 · 0 评论 -
panel滚动区域
panel是LAYA提供的一种滚动组件,LIST也可以滚动。给panel直接添加子元素,发现panel的滚动区域有点大,最后一个子元素可以一直滑到panel中间,而策划想要的效果确实panel的最后一个子元素,滑到panel边缘就不要再滑动。实现方法是在UI编辑器里面给panel添加一个子元素box,把原本需要添加到panel的元素添加到box,设置一个变量tempY记录box所有子元素的...原创 2019-09-19 10:05:39 · 963 阅读 · 0 评论 -
for in的key只能是string
用AS3开发时,new键值对,键为int类型,但是这里的键其实是string,编译成JS语言后,JS是弱类型语言。这种写法在部分移动设备上可能会导致游戏卡死(崩掉)。//错误用法var map:Object = {};map[1] = "one";map[2] = "two";map[3] = "three";for(var key int in map){ cons...原创 2019-07-08 22:57:24 · 868 阅读 · 0 评论 -
本地坐标和全局坐标转化
涉及到的APIglobalToLocallocalToGlobaltoParentPointfromParentPoint /** * 把本地坐标转换为相对stage的全局坐标。 * @param point 本地坐标点。 * @param createNewPoint (可选)是否创建一个新的Point对象作为返回值,默认为false,使用输入的p...原创 2019-05-05 21:44:38 · 5449 阅读 · 0 评论 -
CacheAs静态缓存优化
合理使用CacheAs静态缓存优化可以提高渲染性能CacheAs属性值有none、normal、bitmap,默认为none;* <p>指定显示对象是否缓存为静态图像,cacheAs时,子对象发生变化,会自动重新缓存,同时也可以手动调用reCache方法更新缓存。</p>* <p>建议把不经常变化的“复杂内容”缓存为静态图像,能极大提高渲染性能。ca...原创 2019-04-18 16:15:00 · 874 阅读 · 0 评论 -
Laya性能统计面板
AS3调用性能统计面板引入laya.utils.Stat类,直接使用Stat.show()方法FPS(Frames Per Second)-每秒传输帧数,帧速越高,视觉上感觉越流畅当前PC与手机等设备的满帧是60帧,流畅度要求低的游戏,可以采用引擎的帧速限制方法Stage.FRAME_SLOW,将FPS帧速限制为最高30帧。更好的方法是采用自动模式,以30的帧率运行,但是鼠标...原创 2019-04-18 15:49:16 · 3199 阅读 · 0 评论 -
WebGL和canvas渲染方式
Laya引擎支持WebGL和canvas两种渲染方式,可以在引擎初始化时选择渲染方式Laya.init(width,height,WebGL);//WebGL模式Laya.init(width,height);//canvas默认为canvas模式canvas是一个H5标签,作用是在网页上画图,但是只支持2D,不支持3D。WebGL是一种3D绘图标准,WebGL支持3D,且性能优于ca...原创 2019-04-18 14:55:49 · 12407 阅读 · 1 评论 -
layabox list底层渲染方式
做功能意外发现list的渲染没有按照arr顺序进行,而是从上往下、从左往右进行渲染的。仔细观察,博主所做的功能,list纵向有两个item,横向可以无限增加item个数。查看laya引擎底层list类,发现渲染代码如下 private function _createItems(startY:int, numX:int, numY:int):void { var box:Box...原创 2019-04-10 00:11:25 · 1990 阅读 · 0 评论 -
LAYA 骨骼动画
LayaAir引擎中模板是一种特别的概念,表示一种数据结构,这种数据结构可以被复用。骨骼动画就使用到了模板,对于同一个动画来说,可以只创建一个动画模板,然后实例多个播放的实例,这样内存中就只有一份的动画数据,但是却可以在舞台上显示多个动画。创建骨骼动画代码private var sk:Skeleton;private function showSki():void{ var t:...原创 2019-04-15 16:30:47 · 1560 阅读 · 0 评论 -
文字自适应居中
实际开发中,为了界面效果美观,经常用到居中,之前一直用的width和height计算后实现居中,前几天开发遇到一个问题,height值并不是预期的值,断点发现contextHeight才是预期的值查API height、width表示对象的宽高contextheight、contextwidth表示内容的宽高,用于富文本...原创 2018-11-05 16:21:33 · 1018 阅读 · 0 评论 -
Sprite
//初始化画布(function() { // 初始化画布大小,不支持WebGL时自动切换至Canvas Laya.init(Browser.clientWidth, Browser.clientHeight, Laya.WebGL); Laya.stage.alignV = Laya.Stage.ALIGN_MIDDLE;//画布垂直居中对齐 Laya.stage.alignH = La...原创 2018-04-26 14:56:34 · 604 阅读 · 0 评论 -
laya用panel实现拖动效果(拉地图效果)
layabox最常见的拖动效果是用list实现的,但是也可以用panel实现,并且,panel组件的功能之一就是用来实现拖动的,不存在说panel比list实现拖动更好。用panel实现拖动时,需要给panel添加子容器,例如box,然后再往子容器box中添加想要滑动的内容,在box尺寸内的可见,在box外的不可见,通过设置panel的scrollbar的value值,还可以控制滑动以及设置b...原创 2018-10-29 22:19:06 · 5968 阅读 · 0 评论 -
layabox list渲染优化
前面已经说过一种方法了,就是先加载图片,再渲染list,但是对于存在较多list时,这种方法存在问题,用户虽然能迅速看到界面,这比只能看到加载时的黑色界面体验要好,但是,用户打开界面后,会看到很多的listitem没有数据进行渲染,看到的是UI文件中的界面。进一步优化的方法是,渲染item时选择先渲染图片,至于其他数据,走之前的渲染流程。具体做法是,1.在item中封装公有方法...原创 2018-10-17 00:36:47 · 3622 阅读 · 0 评论 -
layabox图片资源加载问题(重设skin)
准确地讲,这里应该写成重设skin,因为资源其实已经加载了,但是由于每帧允许最大重设skin数量的限制,导致的图片没有瞬间全部显示出来。用layabox开发时,发现有一张图片资源总是慢1秒钟左右才能加载出来,而该页面的其他图片资源的加载没有延迟。刚开始以为是图集太大造成的,毕竟使用的是背景图,后来把这张背景图放在不打包中,发现还是有延迟,再后来把这个界面的所有图片资源都放在不打包中,结...原创 2018-10-08 21:51:05 · 8134 阅读 · 1 评论 -
layabox溢出容器部分不显示
layabox中的box,其中的子元素不会受到box大小的限制,超出容器尺寸的部分仍然能够显示出来,并且layabox没有前端常用的overflow属性,要起到溢出隐藏的效果,需要用到panel,但是一般不推荐使用,对性能消耗较大...原创 2018-10-08 21:32:56 · 1758 阅读 · 0 评论 -
layabox图片资源位置
对于图集资源,加载后才能显示出来,对于一些较大的图集资源,超过512,占用过多像素点,会影响加载速度,较好的做好是,将较大的图片资源放在不打包中。注意:这里说的较大,不是指资源大小,而是资源的尺寸,所以,较为常见的做法是,背景图等一律放在不打包资源目录中...原创 2018-09-28 16:51:37 · 2173 阅读 · 0 评论 -
laya添加子元素后调整显示层级
用laya开发时,策划提出需求,要修改特效的显示层级。注意,这次要修改层级的特效,并不是本来就在父容器上的,而是后来手动添加的,之前做的修改层级都是直接修改子元素的层级,直接修改zorder就完事了。之前已经做过类似的调整层级的问题,上来直接就用_zorder,结果发现,项目运行后,控制台的层级数据是正确的,但是显示出来的层级存在问题,手动修改控制台的zorder后,显示效果被刷新,显示效果达到预...原创 2018-10-13 15:35:21 · 6907 阅读 · 0 评论