AS3 localToGlobal、globalToLocal方法的总结

(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

时间: 2024-12-19 11:44:40

AS3 localToGlobal、globalToLocal方法的总结的相关文章

[ActionScript 3.0] AS3虚线绘制方法

import flash.geom.Point; import flash.display.MovieClip; import flash.display.Graphics; var mc:MovieClip=new MovieClip(); addChild(mc); drawDashed(mc,new Point(100,100),new Point(500,100),5,5); function drawDashed(mc:Sprite,p1:Point,p2:Point,length:N

js与as3交互的问题

我想,是时候纠正一定以来的误区了,那就是html中的js如何获取flash的swf对象,并与as3交互. 按照官方的写法应该是在 Internet Explorer 中返回 object 标签的 id 属性,或者在 Netscape 中返回 embed 标签的 name 属性(AS3 API手册). function thisMovie(movieName) { if (navigator.appName.indexOf("Microsoft") != -1) { return win

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

Flex包含3种坐标:全局坐标.本地坐标.内容坐标 全局坐标:stage级别,坐标原点为舞台的左上角,如MouseEvent的stageX.stageY坐标. 本地坐标:组件级别的坐标系,相对坐标,坐标原点为相对的组件的左上角,如MouseEvent的localX.localY坐标,以及容器中组件的x.y属性都为本地相对坐标. 内容坐标:组件级别的坐标系,相对坐标,在有滚动条的情况下,全部内容所占的区域的坐标系,坐标原点为相对的组件的左上角,可以理解为包含滚动条的整个内容面板为一个坐标系.如组件

文件上传于拖拽

上传文件 目前网页上传分为三种: 1.form提交 2.flash上传 3.插件上传 各有利弊,form提交就是没进度条,不太好取消.flash比较难搞的就是在非ie中浏览器认为flash是新窗口会话,当前网页的cookie无法传递到flash上传工具中,而针对这个一般就是用JS把当前页面中的cookie通过flash再传给后台,而对于一个后台如果使用了统一验证身份的接口那可能会有点麻烦.第三种优势很明显,比如适合如QQ空间这样用户需要大批量上传图片的,缺点也显而易见:跨浏览器上存在问题.而HT

页面进度条

从很早之前就想知道页面的进度条是怎么实现的了,但发现好像不是自己想要的,不是就是不会,是什么flash的AS3里的 方法实现获取页面加载的进度,要不就是别的,这些都是未知的领域啊,不懂,然而HTML5也有这样获取文件大小的方法, 但没有进入深究,所以也暂时不能全面了解,但可以在已经的知识上完成这个效果,就是onload事件,页面上都是图片拖慢 页面加载进度而降低性能,不是就是JS文件过大,那么我们能就从这两个角度去把页面进度条完成了? 以下就是从onload这个方法实现页面进度条. 材料: lo

Flex 4中 mouseX 与 contentMouseX的区别

其实这是个历史问题,Flex 3 以前,所有Flex容器组件都是Container组件的子类,而Container组件重写了UIComponent.contentMouseX.UIComponent.contentMouseY的代码. 以UIComponent.contentMouseX为例 //UIComponent.as //------ //在UIComponent中 contentMouseX返回的是UIComponent.mouseX的值 public function get con

加载透明图片

可以被FLASH动态加载的背景透明图片大致就GIF,PNG两种 先说说GIF图片,用普通的加载方法加载GIF图片完后只能看到动态图片的第一帧,由动态图变成静态的了 所幸有达人完美解决了这个问题,并封装好类供我们使用,这就是GIFPlayer.下载地址网上搜一下很多,要找不到也可以找我要 GIFPlayer使用示例 package{ /*  QQ: 334973991  */ import flash.net.URLRequest; import flash.display.Sprite; imp

Flash 全屏代码

FLASH退出代码  代码如下 复制代码 on(release){fscommand("quit",true)} 加在按钮中! -------------------------------------------  代码如下 复制代码 on(release){fscommand("quit");} 可以关闭用flash播放器播放的 用  代码如下 复制代码 on(release){getURL("javascript:window.close()&quo

canvas 动画库 CreateJs 之 EaselJS(下篇)

本文来自网易云社区 作者:田亚楠 继承 对应原文:Inheritance 我们可以继承已有的「显示对象」,创建新的自定义类.实现方法有很多种,下面介绍其中之一. 举例:实现一个继承于 Container 类的自定义类 Button: 共分 4 步: 自定义构造器 继承父类,获得父类的功能 重写已有方法,扩展自身方法 promote 继承来的方法,返回自定义类 (function () {    // 自定义构造器     //  - 调用继承的父类构造器()     //  - label 为自