画一个矩形,在矩形里加载一张图片,(图片未所有显示),要让显示图片的视角随鼠标的移动而移动。为何运行后鼠标动而视角不动

画一个矩形,在矩形里加载一张图片,(图片未全部显示),要让显示图片的视角随鼠标的移动而移动。为何运行后鼠标动而视角不动?
请各位帮忙看下!谢谢!代码如下:


         private var speed : int = 7;
private var map : Loader = new Loader(); //地图容器
private var rec : Rectangle;  //当前显示区域的范围 
private var maxRec : Rectangle;  //地图的矩形范围 

//构造方法
public function TAnnoImage2(holder :DisplayObjectContainer = null) {
super(holder);
}

//重写draw
override protected function draw() : void {
super.draw();
this.contentContainer.graphics.clear();

if( !TAnnotation.isRuntime){
contentContainer.graphics.beginFill(0xffffff, 0.8);
contentContainer.graphics.drawRect(0, 0, this.width, this.height);//画矩形
contentContainer.graphics.endFill();

rec = new Rectangle(0,0,this.width,this.height);  //图片显示的范围
map.scrollRect = rec;  //确定地图的可显示范围..

load2();
}
}

public function load2() : void {
map.load (new URLRequest("C:/Users/mobiano11/Desktop/003.jpg"));
map.contentLoaderInfo.addEventListener (Event.COMPLETE,onComplete);

stage.scaleMode = StageScaleMode.NO_SCALE;//
addChild (map);
}

public function onComplete (evt:Event) : void {
maxRec = map.getBounds(map);  //以自己的坐标系返回矩形
this.addEventListener (MouseEvent.MOUSE_MOVE,onMouseMove);
}

public function onMouseMove(evt:MouseEvent) : void {
rec = map.scrollRect;
rec.x = mouseX;//图片显示的范围随鼠标移动
rec.y = mouseY;

if(maxRec.containsRect(rec)) 
map.scrollRect = rec;
}
------解决方案--------------------
楼主用的一些方法和监听并不太好。影响效率。
我写了一个。但是没加注解,不过很少的代码你看看吧。
用的enterEvent监听和mask。这样效率会高一点。

//mousePic类
package
{
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Rectangle;
import flash.net.URLRequest;
import flash.utils.getTimer;

public class mousePic extends Sprite
{
private var _rect:Rectangle;
private var loader:Loader = new Loader();
private var maskMc:Sprite = new Sprite();
public function mousePic(rect:Rectangle,Url:String)
{
_rect = rect;
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loaderCompleteEvt);
addEventListener(Event.ENTER_FRAME,EntEvt);
loader.load(new URLRequest(Url));
maskMc.graphics.beginFill(0);
maskMc.graphics.drawRect(0,0,_rect.width,_rect.height);
addChild(maskMc);

}
private function loaderCompleteEvt(e:Event):void
{
addChild(loader);
loader.mask = maskMc;
}
private function EntEvt(e:Event):void
{
    maskMc.x = stage.mouseX;
maskMc.y = stage.mouseY;
}
}
}


//构造方法
var rect:Rectangle = new Rectangle(0,0,100,100)
stage.addChild(new mousePic(rect,"pic.jpg"));