您的位置:首页 > 其它

AS3 localToGlobal、globalToLocal方法的总结

2017-09-09 10:05 579 查看
(1).localToGlobal (point) 把point看成在(1)内部,计算出该point相当于stage的坐标

(2).globalToLocal (point) point为全局坐标,计算出该point相当于(2)的坐标

package
{
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.geom.Point;

public class testZuoBiaoZhuanHuan extends Sprite
{
private var s1 : Sprite = new Sprite();
private var s2 : Sprite = new Sprite();
private var s3 : Sprite = new Sprite();

private var pointTemp : Point = new Point(10,10);
private var pointResult : Point;

public function testZuoBiaoZhuanHuan()
{
this.addEventListener(Event.ADDED_TO_STAGE,onAddToStage);
}

private function onAddToStage(e : Event):void
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.BOTTOM;

addChild(s1);
s1.graphics.beginFill(0xff0000);
s1.graphics.drawRect(0,0,80,80);
s1.graphics.endFill();

s1.addChild(s2);
s2.x = 10;
s2.y = 10;
s2.graphics.beginFill(0x00ff00);
s2.graphics.drawRect(0,0,60,60);
s2.graphics.endFill();

s2.addChild(s3);
s3.x = 10;
s3.y = 10;
s3.graphics.beginFill(0x0000ff);
s3.graphics.drawRect(0,0,40,40);
s3.graphics.endFill();

pointResult = s1.localToGlobal(new Point(10,10));
trace(pointResult.x , pointResult.y);

pointResult = s2.localToGlobal(new Point(20,20));
trace(pointResult.x , pointResult.y);

pointResult = s3.localToGlobal(new Point(30,30));
trace(pointResult.x , pointResult.y);

pointResult = s1.globalToLocal(pointTemp);
trace(pointResult.x , pointResult.y);

pointResult = s2.globalToLocal(pointTemp);
trace(pointResult.x , pointResult.

pointResult = s3.globalToLocal(pointTemp);
trace(pointResult.x , pointResult.y);

}

}
}


  原文:http://bbs.9ria.com/thread-100884-1-3.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: