Flex各类型坐标转换(全局、本地、内容坐标间转换)
Flex包含3种坐标:全局坐标、本地坐标、内容坐标
全局坐标:stage级别,坐标原点为舞台的左上角,如MouseEvent的stageX、stageY坐标。
本地坐标:组件级别的坐标系,相对坐标,坐标原点为相对的组件的左上角,如MouseEvent的localX、localY坐标,以及容器中组件的x、y属性都为本地相对坐标。
内容坐标:组件级别的坐标系,相对坐标,在有滚动条的情况下,全部内容所占的区域的坐标系,坐标原点为相对的组件的左上角,可以理解为包含滚动条的整个内容面板为一个坐标系。如组件的contentMouseX、contentMouseY属性为内容坐标。
下图为官方提供的图说明三类坐标的关系:

|
Flex包含3种坐标:全局坐标、本地坐标、内容坐标 全局坐标:stage级别,坐标原点为舞台的左上角,如MouseEvent的stageX、stageY坐标。 |
|
| contentToGlobal |
内容to全局 |
| contentToLocal |
内容to本地 |
| globalToContent |
全局to内容 |
| globalToLocal |
全局to本地 |
| localToContent |
本地to内容 |
| localToGlobal |
本地to全局 |
有一个示例,以localToGlobal和globalToLocal为例,描述坐标转换的使用方法
- <?xml version="1.0" encoding="utf-8"?>
- <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:s="library://ns.adobe.com/flex/spark"
- xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
- <fx:Declarations>
- <!--当前示例为:有一排按钮,一个漂浮窗口,点击按钮,漂浮窗口至于当前按钮正上方-->
- </fx:Declarations>
- <fx:Script>
- <![CDATA[
- private function setContainerPosition(event:MouseEvent):void
- {
- var btn:Button=event.currentTarget as Button;
- var point:Point= new Point();
- //获取触发点击事件当前按钮的全局坐标
- point=btn.localToGlobal(point);
- //相对于整个Application下,获取触发事件按钮的本地坐标
- //即漂浮容器container的父容器(当前为Application)调用globalToLocal方法
- point=this.globalToLocal(point);
- //设置漂浮面板坐标,同为相对于整个Application下的本地坐标
- container.x=point.x-container.width/2+btn.width/2;
- container.y=point.y-container.height;
- }
- ]]>
- </fx:Script>
- <s:HGroup width="500" height="60" bottom="5" left="200" gap="20">
- <s:Button id="btn1" label="btn1" click="setContainerPosition(event)"/>
- <s:Button id="btn2" label="btn2" click="setContainerPosition(event)"/>
- <s:Button id="btn3" label="btn3" click="setContainerPosition(event)"/>
- </s:HGroup>
- <s:BorderContainer id="container" cornerRadius="4" width="200" height="100">
- <s:Label text="漂浮容器"/>
- </s:BorderContainer>
- </s:Application>
Flex各类型坐标转换(全局、本地、内容坐标间转换)的更多相关文章
- 元素类型为 "configuration" 的内容必须匹配 "(properties?,settings?,typeAliases?,typeHandlers?
报错主要部分如下: Error building SqlSession.### Cause: org.apache.ibatis.builder.BuilderException: Error cre ...
- MyBatis 元素类型为 "configuration" 的内容必须匹配 ".....
修改MyBatis配置文件时,添加typeAliases节点,报了一个BuilderException: org.apache.ibatis.exceptions.PersistenceExcepti ...
- Caused by: 元素类型为 "package" 的内容必须匹配 "(result-types?,interceptors?,default-interceptor-ref?,default-action-ref?,default-class-ref?,global-results?,global-exception-mappings?,action*)"
Caused by: 元素类型为 "package" 的内容必须匹配 "(result-types?,interceptors?,default-interceptor- ...
- Flex读取txt文件里的内容(二)
Flex读取txt文件里的内容 自己主动生成的文件 LoadTxt-app.xml: <?xml version="1.0" encoding="utf-8&quo ...
- 解决 Mybatis 元素类型为 "resultMap" 的内容必须匹配 "(constructor?,id*,result*,association*,collection*,discriminat
在配置 mybatis mapper.xml文件时, 一不小心就会报如下类似的异常: Caused by: org.springframework.beans.factory.BeanCreation ...
- Flex读取txt文件中的内容(三)
Flex读取txt文件中的内容 1.设计源码 LoadTxt.mxml: <?xml version="1.0" encoding="utf-8"?> ...
- Flex读取txt文件中的内容(二)
Flex读取txt文件中的内容 自动生成的文件 LoadTxt-app.xml: <?xml version="1.0" encoding="utf-8" ...
- Flex读取txt文件中的内容(一)
Flex读取txt文件中的内容 phone.txt: 13000003847 13000003848 13000003849 13000003850 13000003851 13000003852 1 ...
- Flex读取txt文件中的内容报错
Flex读取txt文件中的内容 1.具体错误如下 2.错误原因 读取文件不存在 var file:File = new File(File.applicationDirectory.nativePat ...
随机推荐
- Linux下快速设定ip bond
在计算机网路普及的初期,很多OS系统都使用的为单网卡方式,即一个网卡使用一个IP地址.随着网络要求的不断提高,我们可以对多个网卡进行绑定聚合当一个逻辑网络接口来使用,从而大幅提升服务器的网络吞吐(I/ ...
- Windows 7专业版安装VS2005与WinCE6.0开发环境
近期更新了自己的小黑从XP更新到WIN7专业版,我花了两天时间验证了下列软件安装在WIN7 PRO是完全兼容的. 1:2011年最新更新的SourceInsight3.50.0066版本,这个是支持W ...
- 孙鑫MFC学习笔记6:菜单编程
1.对菜单响应的顺序: 视类,文档类,框架类,应用程序类 2.消息的分类 3.CWnd继承自CCmdTarget类, 所以从CWnd派生出的类也可以接收WM_COMMAND消息 4.命令的消息路由 5 ...
- Oracle 数据库 基础学习 (一) SQL基本知识
Oracle 从零开始,不知所措.要掌握一种技能,最好的方式是先学会怎么使用它,然后再深入学习,先有样子,再有技术. 一,什么是数据库? 为什么需要数据库? 数据库实质上是一个信息的列表,或者是一 ...
- Struts 2.3.24源码解析+Struts2拦截参数,处理请求,返回到前台过程详析
Struts2官网:http://struts.apache.org/ 目前最新版本:Struts 2.3.24 Struts1已经完全被淘汰了,而Struts2是借鉴了webwork的设计理念而设计 ...
- mysql autocommit=OFF导致wordpress 建立数据库连接时出错
今天安装wordpress完成后跳转到login页面时,出现建立数据库连接时出错.网上清一色的拷贝http://mt.sohu.com/20160917/n468547634.shtml的答案. 只能 ...
- 【转载】GUID vs INT Debate
I recently read a blog post on what was better using GUIDs or Integer values. This is been an age lo ...
- (原) 1.1 Zookeeper单机安装
本文为原创文章,转载请注明出处,谢谢 zookeeper 单机安装配置 1.安装前准备 linux系统(此文环境为Centos6.5) Zookeeper安装包,官网https://zookeeper ...
- Guacamole之实现和架构(一)
摘要 在网上看到一篇Guacamole官方手册的翻译,但是找不到后续,于是想自己也翻译几篇,有时间的话,会尽量多翻译一些.第一篇就直接转载过来了. Guacamole的介绍以及架构 Guacamole ...
- BasicModal - 简单易用的现代 Web App 弹窗
BasicModal 是为现代 Web 应用程序打造的弹窗系统.它包括所有你需要显示的信息,问题或接收用户的输入.这里的弹窗还可以链接起来,所以你可以很容易地建立一个预定义顺序的安装帮助或显示对话框. ...