利用 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);

            }

        }

    }

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值