博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AS3全局与局部坐标转换
阅读量:4656 次
发布时间:2019-06-09

本文共 1610 字,大约阅读时间需要 5 分钟。

在大部分需要用户点击的游戏中,坐标的转换是一种必须熟练掌握的方法。

首先在一个700x700的舞台中创建2个方块,红色的大方块A是600x600,位于(50,50),绿色的小方块B是300x300。A是B的父容器,B相对于舞台位于(200,200)。

接下来做一系列的测试来阐明这2个方法是如何运作的。

假设我们点B方块的中心点,即全局(350,350),A(300,300),B(150,150),看看结果分别会怎么样:

private function onClickHandler(e:MouseEvent):void

{

e.stopPropagation();

var stagePoint:Point = new Point(stage.mouseX, stage.mouseY);
trace(stagePoint.x); //350
trace(stagePoint.y); //350
trace(stage.globalToLocal(stagePoint).x); //350
trace(stage.globalToLocal(stagePoint).y); //350
trace(smallShape.globalToLocal(stagePoint).x); //150
trace(smallShape.globalToLocal(stagePoint).y); //150
trace(bigShape.globalToLocal(stagePoint).x); //300
trace(bigShape.globalToLocal(stagePoint).y); //300
var localPoint:Point = new Point(e.localX, e.localY);
trace(localPoint.x); //150
trace(localPoint.y); //150
trace(stage.localToGlobal(localPoint).x); //150
trace(stage.localToGlobal(localPoint).y); //150
trace(smallShape.localToGlobal(localPoint).x); //350
trace(smallShape.localToGlobal(localPoint).y); //350
trace(bigShape.localToGlobal(localPoint).x); //200
trace(bigShape.localToGlobal(localPoint).y); //200

}

通过测试结果可见,globalToLocal方法把同一个全局坐标(350,350)由谁来调用就是转换给谁的local坐标。localToGlobal方法略微复杂一点,由谁来调用localToGlobal就相当于在localPoint(150,150)的基础上加上调用者在舞台的坐标。

理解了这2个方法的运作方式后,假设我们点击B方块某位置要将其转换为A方块的坐标就很简单了:

private function onClickHandler(e:MouseEvent):void

{

var localPoint:Point = new Point(e.localX, e.localY);

var stagePoint:Point = smallShape.localToGlobal(localPoint);//因为点击的位置在B方块内,所以由B调用

localPoint = bigShape.globalToLocal(stagePoint);//点击处在A方块的坐标

}

 

转载于:https://www.cnblogs.com/Pickcle/p/4168759.html

你可能感兴趣的文章
微信开发第8章 通过accesstoken将长连接转换为短链接
查看>>
[刷题]Codeforces 785D - Anton and School - 2
查看>>
四川红油的制法
查看>>
Java重写《C经典100题》 --21
查看>>
【Android基础】Fragment 详解之Fragment生命周期
查看>>
链表(裸题)
查看>>
11运算符重载
查看>>
磁盘系统的管理
查看>>
C/S
查看>>
Http Get/Post请求的区别
查看>>
STM32一键下载电路设计原理
查看>>
C语言中函数返回字符串的四种方法
查看>>
10月区块链领域投融资事件盘点
查看>>
Mybatis缓存策略
查看>>
卷积的意义【转】
查看>>
android图形系统详解五:Android绘制模式
查看>>
[剑指offer] 23. 二叉搜索树的后序遍历序列
查看>>
canvas绘画交叉波浪
查看>>
Linux 内核分析
查看>>
试一下:XP ( SP2 ) 本身就支持查杀流氓软件!
查看>>