AS3 localToGlobal、globalToLocal方法的总结

本文详细介绍了Flash中坐标转换的方法,包括localToGlobal()用于将本地坐标转换为全局坐标,以及globalToLocal()用于将全局坐标转换为本地坐标的实现示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文:http://bbs.9ria.com/thread-100884-1-3.html


(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);
                                
                }
                
        }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值