使用scale拉伸之后的坐标问题

2024-05-04 18:08

本文主要是介绍使用scale拉伸之后的坐标问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近发现论坛多了很多新来的朋友,于是决定发一些平时编程时用到的小技巧赚一些银两。

有时候在业务需求中,我们需要处理一些显示对象的拉伸变形、本地坐标和全局坐标转换等问题,这些都是不难但是很容易出错的地方,例如下面一些情况:

A. 你要查询影片剪辑A默认的宽高,却忘记曾今修改过A的scaleX或者scaleY属性,导致问题出现。所以这时候你要这样计算。

  1. width = a.width/a.scaleX;height = a.height/a.scaleY;
复制代码

B. 影片剪辑A中包含影片剪辑B,你需要查询B的全局坐标以及B在屏幕上显示出来的宽高。但是A却有可能进行各种拉伸变形,不管A如何拉伸变形,A内部的坐标系是不会改变的。所以你可能不得不用localToGlobal函数和一系列的数学运算进行转换计算。

像前面说的问题以及通常情况下大部分的拉伸变形运算,灵活使用getRect函数都能够解决。

getRect () 方法 
public function getRect(targetCoordinateSpace isplayObject):Rectangle
语言版本:  ActionScript 3.0 
运行时版本:  Flash Player 9, AIR 1.0 

返回一个矩形,该矩形根据 targetCoordinateSpace 参数定义的坐标系定义显示对象的边界,但不包括形状上的任何笔触。getRect() 方法返回的值等于或小于由 getBounds() 方法返回的值。 

请注意:使用 localToGlobal() 和 globalToLocal() 方法可以分别将显示对象的本地坐标转换为舞台坐标,或将舞台坐标转换为本地坐标。

参数: targetCoordinateSpace isplayObject — 定义要使用的坐标系的显示对象。  

返回: Rectangle — 定义与 targetCoordinateSpace 对象坐标系统相关的显示对象面积的矩形。  



getRect()函数返回的是一个不常见的类型Rectangle,它包含x,y,widht,height四个属性,分别表示x坐标、y坐标、宽度、高度。很少使用getRect函数的人肯定会很奇怪,这些属性不都是可以直接从显示对象的属性取到么嘛,为什么还需要专门设置一个函数来返回这些属性呢?
其中的奥妙就在于getRect函数的参数targetCoordinateSpace,简单来说getRect函数返回的Rectangle中的属性都是相对于这个显示对象而言的。
当你把舞台作为参数传入的时候,得到的就是全局坐标和变形后的宽高,而不用管它在容器中嵌套的多深;
当你把自身作为参数传入的时候,得到的就是本地坐标和原始的宽高;
当你把另一个没有嵌套关系的显示对象作为参数传入的时候,得到的就是相对坐标和变形后的宽高。
当然其还有很多用途等待你的发现,我这里就不一一例举的。所以你会发现,这个函数为你做了大部分的坐标转换以及拉伸变形等计算,不用你绞尽脑汁的去苦恼了。

这篇关于使用scale拉伸之后的坐标问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/959797

相关文章

SpringBoot条件注解核心作用与使用场景详解

《SpringBoot条件注解核心作用与使用场景详解》SpringBoot的条件注解为开发者提供了强大的动态配置能力,理解其原理和适用场景是构建灵活、可扩展应用的关键,本文将系统梳理所有常用的条件注... 目录引言一、条件注解的核心机制二、SpringBoot内置条件注解详解1、@ConditionalOn

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳

Qt spdlog日志模块的使用详解

《Qtspdlog日志模块的使用详解》在Qt应用程序开发中,良好的日志系统至关重要,本文将介绍如何使用spdlog1.5.0创建满足以下要求的日志系统,感兴趣的朋友一起看看吧... 目录版本摘要例子logmanager.cpp文件main.cpp文件版本spdlog版本:1.5.0采用1.5.0版本主要

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

Pyserial设置缓冲区大小失败的问题解决

《Pyserial设置缓冲区大小失败的问题解决》本文主要介绍了Pyserial设置缓冲区大小失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录问题描述原因分析解决方案问题描述使用set_buffer_size()设置缓冲区大小后,buf

resultMap如何处理复杂映射问题

《resultMap如何处理复杂映射问题》:本文主要介绍resultMap如何处理复杂映射问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录resultMap复杂映射问题Ⅰ 多对一查询:学生——老师Ⅱ 一对多查询:老师——学生总结resultMap复杂映射问题