当前位置:   article > 正文

利用 scrollrect滚动场景_scrollrect 用到场景里

scrollrect 用到场景里

 

下面是完整的代码,就不多说废话了。

package {

    import com.greensock.layout.ScaleMode;

    import com.greensock.loading.ImageLoader;

 

    import flash.display.DisplayObject;

    import flash.display.Sprite;

    import flash.events.MouseEvent;

    import flash.geom.Point;

    import flash.geom.Rectangle;

 

    public class scrollrectTest extends Sprite {

        private var ldr:ImageLoader;

        private var _mousePosition:Point;

        private var _scenePosition:Point;

        private var left:int = 0;

        private var top:int = 0;

 

        public function scrollrectTest() {

            ldr = new ImageLoader('IMG_0943.JPG', {

                name:'image',

                container: this,

                width: 800, height: 600,

                scaleMode : ScaleMode.PROPORTIONAL_INSIDE,

                requireWithRoot : root

            });

            ldr.load();

            this.addEventListener(MouseEvent.MOUSE_MOVE, mouseMove);

            this.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);

            this.addEventListener(MouseEvent.MOUSE_UP, mouseUp);

        }

 

        private function mouseUp(event:MouseEvent):void {

            this._mousePosition = null;

        }

 

        private function mouseDown(event:MouseEvent):void {

            this._mousePosition = new Point(event.stageX, event.stageY);

        }

 

        private function mouseMove(event:MouseEvent):void {

            var pt:Point;

            var child:DisplayObject;

            child = this.getChildByName("image");

            if (event.buttonDown && _mousePosition) {

                pt = new Point(event.stageX, event.stageY);

                pt = pt.subtract(this._mousePosition);

                _mousePosition = new Point(event.stageX, event.stageY);

                left = left - pt.x;

                top = top - pt.y;

                if (left < 0) {

                    left = 0;

                }

                if (top < 0) {

                    top = 0;

                }

                if (left + stage.stageWidth > child.width) {

                    left = child.width - stage.stageWidth;  

                }

                if (top + stage.stageHeight > child.height) {

                    top = child.height - stage.stageHeight;  

                }

 

                this.scrollRect = new Rectangle(this.left, this.top, this.width, this.height);

            }

        }

    }

}

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/295349
推荐阅读
相关标签
  

闽ICP备14008679号