zoukankan      html  css  js  c++  java
  • As3显示对象scrollRect滚动问题

      利用DisplayObject的scrollRect属性可以很方便的设置DisplayObject的显示及滚动区域,不过设置scrollRect后如果再获取DisplayObject.height时,其值和设置scrollRect之前的DisplayObject.height不同,而是scrollRect.height(DisplayObject.width一样)。这下要根据DisplayObject.height来更新滚动条的滚动区域或者只是获取原来的DisplayObject.heigt就会出现问题了。当然,最简单也是最笨的办法是可以在设置scrollRect前先用一个临时变量保存其DisplayObject.height。不过对于我的程序问题来说这种方法行不通,因为我显示出来的有文字和图片,在图片加载完成前显示时要先设置滚动条,在图片加载完成后要更新滚动条,这就出现了上述的问题。

      描述完后上解决方法,解决方法是从国外的一个论坛找到的,它是获取显示对象的全部区域的边界,其边界的宽高就是显示对象没有设置scrollRect的宽高,我们就可以根据这个宽度和高度来更新或者做其他事了。之前我也考虑过,不过我是用DisplayObject.getBounds和DisplayObject.getRect尝试获得,返回的是其scrollRect区域并不是其全部区域。

      下面是获取显示对象的全部区域边界的方法:

    static public function getFullBounds ( displayObject:DisplayObject ) :Rectangle
      {
        var bounds:Rectangle, transform:Transform,     toGlobalMatrix:Matrix, currentMatrix:Matrix;     transform = displayObject.transform;     currentMatrix = transform.matrix;     toGlobalMatrix = transform.concatenatedMatrix;     toGlobalMatrix.invert();     transform.matrix = toGlobalMatrix;     bounds = transform.pixelBounds.clone();     transform.matrix = currentMatrix;     return bounds;   }
  • 相关阅读:
    Linux的基础优化
    Linux日志文件/var/log详解
    Linux下inittab文件详解
    Linux内核优化
    Linux虚拟机网络连接的三种方式
    Linux下ssh的使用
    nginx安装Lets Encrypt SSL免费HTTPS加密证书
    centos7.2 安装 nginx
    CentOS 7 安装php7
    linux tar 解压出错
  • 原文地址:https://www.cnblogs.com/skybdemq/p/2293727.html
Copyright © 2011-2022 走看看