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为例,描述坐标转换的使用方法

[html] view plaincopy

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
  3. xmlns:s="library://ns.adobe.com/flex/spark"
  4. xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
  5. <fx:Declarations>
  6. <!--当前示例为:有一排按钮,一个漂浮窗口,点击按钮,漂浮窗口至于当前按钮正上方-->
  7. </fx:Declarations>
  8. <fx:Script>
  9. <![CDATA[
  10. private function setContainerPosition(event:MouseEvent):void
  11. {
  12. var btn:Button=event.currentTarget as Button;
  13. var point:Point= new Point();
  14. //获取触发点击事件当前按钮的全局坐标
  15. point=btn.localToGlobal(point);
  16. //相对于整个Application下,获取触发事件按钮的本地坐标
  17. //即漂浮容器container的父容器(当前为Application)调用globalToLocal方法
  18. point=this.globalToLocal(point);
  19. //设置漂浮面板坐标,同为相对于整个Application下的本地坐标
  20. container.x=point.x-container.width/2+btn.width/2;
  21. container.y=point.y-container.height;
  22. }
  23. ]]>
  24. </fx:Script>
  25. <s:HGroup width="500" height="60" bottom="5" left="200" gap="20">
  26. <s:Button id="btn1" label="btn1" click="setContainerPosition(event)"/>
  27. <s:Button id="btn2" label="btn2" click="setContainerPosition(event)"/>
  28. <s:Button id="btn3" label="btn3" click="setContainerPosition(event)"/>
  29. </s:HGroup>
  30. <s:BorderContainer id="container" cornerRadius="4" width="200" height="100">
  31. <s:Label text="漂浮容器"/>
  32. </s:BorderContainer>
  33. </s:Application>

Flex各类型坐标转换(全局、本地、内容坐标间转换)

时间: 2024-08-06 01:35:27

Flex各类型坐标转换(全局、本地、内容坐标间转换)的相关文章

Flex读取txt文件里的内容报错

Flex读取txt文件里的内容 1.详细错误例如以下 2.错误原因 读取文件不存在 var file:File = new File(File.applicationDirectory.nativePath+"/phone.txt"); 3.解决的方法 将文件导入进去

MyBatis 元素类型为 &quot;configuration&quot; 的内容必须匹配 &quot;.....

修改MyBatis配置文件时,添加typeAliases节点,报了一个BuilderException: org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession. ### Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXPars

JavaScript中两种类型的全局对象/函数(转)

转自:http://www.cnblogs.com/snandy/archive/2011/03/19/1988626.html 这里所说的JavaScript指浏览器环境中的包括宿主环境在内的.第一种是ECMAScript Global Object,第二种是宿主环境(Host)下的全局对象/函数. 一.核心JavaScript内置对象,即ECMAScript实现提供的不依赖于宿主环境的对象 这些对象在程序执行之前就已经(实例化)存在了.ECMAScript称为The Global Objec

Flex读取txt文件里的内容(二)

Flex读取txt文件里的内容 自己主动生成的文件 LoadTxt-app.xml: <?xml version="1.0" encoding="utf-8" standalone="no"?> <application xmlns="http://ns.adobe.com/air/application/1.5.3"> <!-- Adobe AIR Application Descriptor

Flex读取txt文件中的内容报错

Flex读取txt文件中的内容 1.具体错误如下 2.错误原因 读取文件不存在 var file:File = new File(File.applicationDirectory.nativePath+"/phone.txt"); 3.解决办法 将文件导入进去 Flex读取txt文件中的内容报错

Flex读取txt文件中的内容(一)

Flex读取txt文件中的内容 phone.txt: 13000003847 13000003848 13000003849 13000003850 13000003851 13000003852 13000003853 13000003854 13000003855 13000003856 13000003857 13000003858 13000003859 13000003860 13000003861 13000003862 13000003863 13000003864 1300000

Flex读取txt文件中的内容(二)

Flex读取txt文件中的内容 自动生成的文件 LoadTxt-app.xml: <?xml version="1.0" encoding="utf-8" standalone="no"?> <application xmlns="http://ns.adobe.com/air/application/1.5.3"> <!-- Adobe AIR Application Descriptor Fi

元素类型为 &quot;mapper&quot; 的内容必须匹配 &quot;(cache-ref|cache|resultMap*|parameterMap*|sql*|insert*|update*|delete*|select)

在配置ssm框架的时候,写mapper映射文件的时候会出现 元素类型为 "mapper" 的内容必须匹配 "(cache-ref|cache|resultMap*|parameterMap*|sql*|insert*|update*|delete*|select) 有时候编译的时候会出现这个bug,是因为在前面写了注释.导致了执行顺序的问题.需要把一些注释删掉,就可以正常执行了. /*mapper动态开发*/ <mapper namespace="com.ss

【Unity】稍微说一下关于各种坐标的转换。比如WorldToScreenPoint

之前写了一篇关于在物体头顶上显示名字的随笔. 估计难懂的点就在各种坐标的转换. 这里详细(就我这水平,怎么可能详细~~~)解说一下.额............. 用另一种方式举个栗子吧. 还是实现在物体的头顶或某个部位显示UI并跟随物体的移动改变位置. 先把栗子端上来: public Transform Boy;//帅帅的主角 public Transform UI;//对主角死缠烂打的UI君 Camera cam;//主相机 void Update () { UI.localPosition