目录

getGraphicBounds

图片边界


获取显示对象边界

在相对布局中,经常需要正确地获取显示对象的边界,通常采用 getBounds/ getGraphicBounds。它们都是 laya.display. Sprite 类的方法。

getGraphicBounds

/**
 * 返回此实例中的绘图对象( <code>Graphics</code> )的显示区域,不包括子对象。
 * @param realSize  (可选)使用图片的真实大小,默认为false
 * @return 一个 Rectangle 对象,表示获取到的显示区域(矩形区域)。
 */
getGraphicBounds(realSize?: boolean): Rectangle;

getBounds 可以满足多数多数需求,但由于其需要计算边界,不适合频繁调用。

class MyClass {constructor() {Laya.init(1136, 640, Laya.WebGL);//初始化引擎,不支持 WebGL自动切换为CanvasLaya.Stat.show(0, 0);/**显示性能面板 */this.drawMyRect();this.drawMyCircle();this.createText();this.showMyInfo();}//绘制矩形drawMyRect() {this.sp_rect = new Laya.Sprite();this.sp_rect.graphics.drawRect(150, 30, 200, 100, "#FF0000");Laya.stage.addChild(this.sp_rect);}//绘制圆形drawMyCircle() {this.sp_cicle = new Laya.Sprite();this.sp_cicle.graphics.drawCircle(550, 80, 30, "#f00");Laya.stage.addChild(this.sp_cicle);}//参加文本createText() {this.text_my = new Laya.Text();this.text_my.text = "奋六世之余烈";this.text_my.fontSize = 40;this.text_my.color = "#f00";this.text_my.pos(800, 80);Laya.stage.addChild(this.text_my);}//显示边界信息showMyInfo() {var label_1 = this.createLabel();var label_2 = this.createLabel();var label_3 = this.createLabel();label_1.pos(150, 200);label_2.pos(500, 200);label_3.pos(800, 200);//为三个表情绑定单击事件label_1.on(Laya.Event.CLICK, this, function () {//getGraphicBounds:返回此实例中的绘图对象( Graphics )的显示区域,不包括子对象,返回 laya.display.Rectangle 对象var rectangle = this.sp_rect.getGraphicBounds();//toString:当前 Rectangle 对象的水平位置 x 和垂直位置 y 以及高度 width 和宽度 height 以逗号连接成的字符串。 label_1.text = "x,y,width,height=" + rectangle.toString() +"\nbottom=" + rectangle.bottom + ",right=" + rectangle.right;});label_2.on(Laya.Event.CLICK, this, function () {var rectangle = this.sp_cicle.getGraphicBounds();label_2.text = "x,y,width,height=" + rectangle.toString() +"\nbottom=" + rectangle.bottom + ",right=" + rectangle.right;});label_3.on(Laya.Event.CLICK, this, function () {var rectangle = this.text_my.getGraphicBounds();label_3.text = "x,y,width,height=" + rectangle.toString() +"\nbottom=" + rectangle.bottom + ",right=" + rectangle.right;});}createLabel() {var lable_info = new Laya.Label("信息展示");lable_info.fontSize = 20;lable_info.color = "#fff";Laya.stage.addChild(lable_info);return lable_info;}
}
new MyClass();//运行本类

图片边界

写法不同,获取的数据略有差异。不过都要注意的是必须要在图片加载完成后才能正确获取尺寸。

class MyClass {constructor() {Laya.init(1136, 640, Laya.WebGL);//初始化引擎,不支持 WebGL自动切换为CanvasLaya.Stat.show(0, 0);/**显示性能面板 */this.showImage();this.showMyInfo();}//显示图片showImage() {this.sp_img = new Laya.Sprite();var img_url = "https://cn.vuejs.org/images/logo.png?_sw-precache=cf23526f451784ff137f161b8fe18d5a";//加载图片资源Laya.loader.load(img_url, Laya.Handler.create(this, function () {//加载完成绘制图像this.sp_img.graphics.drawTexture(Laya.loader.getRes(img_url), 150, 0);Laya.stage.addChild(this.sp_img);}));}//显示边界信息showMyInfo() {var label_1 = this.createLabel();label_1.pos(500, 200);//绑定单击事件label_1.on(Laya.Event.CLICK, this, function () {//getGraphicBounds:返回此实例中的绘图对象( Graphics )的显示区域,不包括子对象,返回 laya.display.Rectangle 对象var rectangle = this.sp_img.getGraphicBounds();//toString:当前 Rectangle 对象的水平位置 x 和垂直位置 y 以及高度 width 和宽度 height 以逗号连接成的字符串。 label_1.text = "x,y,width,height=" + rectangle.toString() +"\nbottom=" + rectangle.bottom + ",right=" + rectangle.right + "\n";});}//创建一个标签用于显示数据createLabel() {var lable_info = new Laya.Label("信息展示");lable_info.fontSize = 20;lable_info.color = "#fff";Laya.stage.addChild(lable_info);return lable_info;}
}
new MyClass();//运行本类

class MyClass {constructor() {Laya.init(1136, 640, Laya.WebGL);//初始化引擎,不支持 WebGL自动切换为CanvasLaya.Stat.show(0, 0);/**显示性能面板 */this.showImage();this.showMyInfo();}//显示图片showImage() {var img_url = "https://cn.vuejs.org/images/logo.png?_sw-precache=cf23526f451784ff137f161b8fe18d5a";this.img = new Laya.Image(img_url);this.img.pos(150, 0);Laya.stage.addChild(this.img);}//显示边界信息showMyInfo() {var label_1 = this.createLabel();label_1.pos(500, 200);//绑定单击事件label_1.on(Laya.Event.CLICK, this, function () {//getGraphicBounds:返回此实例中的绘图对象( Graphics )的显示区域,不包括子对象,返回 laya.display.Rectangle 对象var rectangle = this.img.getGraphicBounds();//toString:当前 Rectangle 对象的水平位置 x 和垂直位置 y 以及高度 width 和宽度 height 以逗号连接成的字符串。 //Sprite 的 width 与 height 属性也可以获取精灵的宽高label_1.text = "x,y,width,height=" + rectangle.toString() +"\nbottom=" + rectangle.bottom + ",right=" + rectangle.right + "\n" +"width=" + this.img.width + ",height=" + this.img.height;});}//创建一个标签用于显示数据createLabel() {var lable_info = new Laya.Label("信息展示");lable_info.fontSize = 20;lable_info.color = "#fff";Laya.stage.addChild(lable_info);return lable_info;}
}
new MyClass();//运行本类

LayaAir 获取对象边界 getBounds/ getGraphicBounds相关推荐

  1. 获取洞口边界及在墙上开洞(Revit二次开发)

    一.洞口类图 #mermaid-svg-8CPGxHq9ZTevDBGx .label{font-family:'trebuchet ms', verdana, arial;font-family:v ...

  2. scrollHeight: 获取对象的滚动高度。

    scrollHeight: 获取对象的滚动高度. scrollWidth:获取对象的滚动宽度 scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop: ...

  3. jvm两种方式获取对象所占用的内存

    在开发过程中,我们有时需要来获取某个对象的大小,以方便我们参考,来决定开发的技术方案.jvm中提供了两种方式来获取一个对象的大小. 通过Instrumentation来计算对象的大小 编写计算代码: ...

  4. 可以获取python中输出函数帮助的是_Python帮助函数调试函数 用于获取对象的属性及属性值...

    Python帮助函数调试函数 用于获取对象的属性及属性值 刚接触Python,上篇 <Python入门>第一个Python Web程序--简单的Web服务器 中调试非常不方便,不知道对象详 ...

  5. 【java】java反射机制,动态获取对象的属性和对应的参数值,并属性按照字典序排序,Field.setAccessible()方法的说明【可用于微信支付 签名生成】...

    方法1:通过get()方法获取属性值 package com.sxd.test.controller;public class FirstCa{private Integer num;private ...

  6. python Class:获取对象类型

    获取对象类型: 一.type #!/usr/bin/env python3 # -*- coding: utf-8 -*- class Animal(object):     def __init__ ...

  7. 【java】java获取对象属性类型、属性名称、属性值

    java获取对象属性类型.属性名称.属性值 获取属性 修饰符:[在Field[]循环中使用] String modifier = Modifier.toString(fields[i].getModi ...

  8. [JQuery] jQuery选择器ID、CLASS、标签获取对象值、属性、设置css样式

    reference : http://www.suyunyou.com/aid1657.html jQuery是继prototype之后又一个优秀的Javascrīpt框架.它是轻量级的js库(压缩后 ...

  9. 使用 spring 的 IOC 解决程序耦合——获取spring的Ioc核心容器,并根据id获取对象、核心容器的两个接口(ApplicationContext、BeanFactory)引发出的问题

    IOC概念和spring中的IOC 明确 ioc 的作用: 削减计算机程序的耦合(解除我们代码中的依赖关系). 使用 spring 的 IOC 解决程序耦合 获取spring的Ioc核心容器,并根据i ...

  10. 单例模式可以分为懒汉式和饿汉式:     懒汉式单例模式:在类加载时不初始化。     饿汉式单例模式:在类加载时就完成了初始化,所以类加载比较慢,但获取对象的速度快。

     单例模式可以分为懒汉式和饿汉式: 懒汉式单例模式:在类加载时不初始化. 饿汉式单例模式:在类加载时就完成了初始化,所以类加载比较慢,但获取对象的速度快.

最新文章

  1. linux fio释放内存,linux使用FIO测试磁盘的iops
  2. 机电传动控制第二周学习笔记
  3. bzoj4033:[HAOI2015]树上染色
  4. Java性能:For-eaching与Streaming
  5. 谈谈社区、产品和新Dubbo | 从Dubbo 的社区star 数突破 2 万说起
  6. 毋庸置疑,容器带来改变!
  7. python数值计算速度_提高python数值计算速度
  8. 怎样让jquery mobile 的footer/header 固定?
  9. 达观杯文本智能处理(1)
  10. Linux下破解UE
  11. 神经网络的参数(Weight)
  12. ps怎么抠地图线路_用PS怎么抠地图?
  13. 无监督学习-案例分析:利率期限结构
  14. phpfpm怎么连接mysql_配置nginx、mysql、php-fpm的方法
  15. 寄存器、缓存、内存之间的关系和区别
  16. keyPress事件与KeyPressEventArgs
  17. Error querying database. Cause: java.lang.NullPointerException .The error occurred while handlin
  18. 如何配置Windows平台轻量级vscode c++开发环境
  19. 什么是站群服务器?站群服务器与普通服务器的区别,为什么站长都爱用站群服务器
  20. ios手游怎么投屏到电脑玩

热门文章

  1. sap未分摊差异怎么处理_MM采购中形成的差异
  2. python info_Python学习教程:Python字典处理
  3. nvidia显卡cuda的性能_苦等10年!512 CUDA满血GTX 480终于出现:性能提升6%、功耗暴增43%...
  4. 拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化
  5. 拓端tecdat|R语言分类回归决策树交互式修剪和更美观地可视化分析细胞图像分割数据集
  6. 拓端tecdat|R语言广义线性模型GLM、多项式回归和广义可加模型GAM预测泰坦尼克号幸存者
  7. 拓端tecdat|R语言中绘制ROC曲线和PR曲线
  8. (1) python 将numpy数组导出excel
  9. php pacs,PACS系统
  10. 服务器安装python虚拟环境