Actionscript 3 用as3链接mc的注册点

Actionscript 3 用as3链接mc的注册点,actionscript-3,flash,registration,point,movieclip,Actionscript 3,Flash,Registration,Point,Movieclip,我有一个网格库,我想根据鼠标位置旋转它。 我很好地旋转了它,但唯一的问题是我无法更改mc容器的注册点,因为我使用as3创建了mc。 顺便说一句,我设法在其他地方解决了这个问题,手动创建了mc,并将其颜色更改为我的舞台颜色,但当我想更改舞台颜色时,事情就糟了!!! 以下是我的网格库的代码: import flash.net.URLLoader; import flash.net.URLRequest; import flash.events.Event; import flash.display.

我有一个网格库,我想根据鼠标位置旋转它。 我很好地旋转了它,但唯一的问题是我无法更改mc容器的注册点,因为我使用as3创建了mc。 顺便说一句,我设法在其他地方解决了这个问题,手动创建了mc,并将其颜色更改为我的舞台颜色,但当我想更改舞台颜色时,事情就糟了!!! 以下是我的网格库的代码:

import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.display.MovieClip;
import flash.display.Loader;
import flash.display.DisplayObjectContainer;
import flash.events.MouseEvent;
import fl.controls.ProgressBar;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
import flash.geom.Matrix;
import flash.geom.Rectangle;

// details of XML
var columns:Number;
var my_x:Number;
var my_y:Number;
var my_thumb_width:Number;
var my_thumb_height:Number;
var my_images:XMLList;
var my_total:Number;

var container_mc:MovieClip;

/*
var dpObj = container_mc.getChildAt(0); //the dipslay object or graphic you movie clip               contains
var mat:Matrix = dpObj.transform.matrix;
var bounds:Rectangle = container_mc.getBounds(dpObj); // get the bounds relative to the     movie clip
mat.tx = -bounds.left; //left and top will be the registration point of the clip
mat.ty = -bounds.top;
*/
var full_mc:MovieClip;

var preloaders_mc:MovieClip;

var x_counter:Number = 0;
var y_counter:Number = 0;

var my_tweens:Array = [];
var container_mc_tween:Tween;
var full_tween:Tween;

var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load(new URLRequest("gallery.xml"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);

function processXML (e:Event):void{
var myXML:XML = new XML(e.target.data);

columns = myXML.@COLUMNS;
my_x = (stage.stageWidth - (columns*110)+10)/2;
my_y = (stage.stageHeight - (columns*110)+10)/2;
my_thumb_width = myXML.@WIDTH;
my_thumb_height = myXML.@HEIGHT;
my_images = myXML.IMAGE;
my_total = my_images.length();

createContainer();
callThumbs();
myXMLLoader.removeEventListener(Event.COMPLETE, processXML);
myXMLLoader = null;
}
function createContainer():void{
container_mc = new MovieClip();  // ino dorostesh kon - bayad pivotesh vasat bashe
container_mc.x = my_x;
container_mc.y = my_y;
addChild(container_mc);
container_mc.addEventListener(MouseEvent.CLICK, callFull);
container_mc.addEventListener(MouseEvent.MOUSE_OVER, onOver);
container_mc.addEventListener(MouseEvent.MOUSE_OUT, onOut);
container_mc.buttonMode = true;

preloaders_mc = new MovieClip();
preloaders_mc.x = container_mc.x;
preloaders_mc.y = container_mc.y;
addChild(preloaders_mc);
}
function callThumbs():void{
for (var i:Number = 0; i < my_total; i++){
    var thumb_url = my_images[i].@THUMB;;
    var thumb_loader = new Loader();
    thumb_loader.load(new URLRequest(thumb_url));
    thumb_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, thumbLoaded);

    thumb_loader.name = i;

    thumb_loader.x = (my_thumb_width+10)*x_counter;
    thumb_loader.y = (my_thumb_height+10)*y_counter;
    if (x_counter+1 < columns){
        x_counter++;
    } else {
        x_counter = 0;
        y_counter++;
    }
    var preloader_pb:ProgressBar = new ProgressBar();
    preloader_pb.source = thumb_loader.contentLoaderInfo;
    preloader_pb.x = thumb_loader.x;
    preloader_pb.y = thumb_loader.y+50;
    preloader_pb.width = my_thumb_width;
    preloaders_mc.addChild(preloader_pb);

    preloader_pb.addEventListener(Event.COMPLETE, donePb);
}
}
function thumbLoaded(e:Event):void{
var my_thumb:Loader = Loader(e.target.loader);
container_mc.addChild(my_thumb);
my_tweens[Number(my_thumb.name)]=new Tween(my_thumb, "alpha", Strong.easeIn, 0,1,0.5, true);
my_thumb.contentLoaderInfo.removeEventListener(Event.COMPLETE, thumbLoaded);
}
function callFull(e:MouseEvent):void{
var full_loader:Loader = new Loader();
var full_url = my_images[e.target.name].@FULL;
full_loader.load(new URLRequest(full_url));
full_loader.contentLoaderInfo.addEventListener(Event.INIT, fullLoaded);

var full_pb:ProgressBar = new ProgressBar();
full_pb.source = full_loader.contentLoaderInfo;
full_pb.x = (stage.stageWidth - full_pb.width)/2;
full_pb.y = (stage.stageHeight - full_pb.height)/2;
preloaders_mc.addChild(full_pb);

full_pb.addEventListener(Event.COMPLETE, donePb)

container_mc.removeEventListener(MouseEvent.CLICK, callFull);
container_mc.buttonMode = false;
container_mc.removeEventListener(MouseEvent.MOUSE_OVER, onOver);
container_mc.removeEventListener(MouseEvent.MOUSE_OUT, onOut);
container_mc_tween = new Tween(container_mc, "alpha", Strong.easeIn, 1,0.5,0.5, true);
}
function fullLoaded(e:Event):void{
full_mc = new MovieClip;
full_mc.buttonMode = true;
addChild (full_mc);
var my_loader:Loader = Loader(e.target.loader);
full_mc.addChild(my_loader);
full_tween = new Tween(my_loader, "alpha", Strong.easeIn, 0,1,0.5, true);
my_loader.x = (stage.stageWidth - my_loader.width)/2;
my_loader.y = (stage.stageHeight - my_loader.height)/2;
my_loader.addEventListener(MouseEvent.CLICK, removeFull);
my_loader.contentLoaderInfo.removeEventListener(Event.INIT, fullLoaded);
}
function removeFull(e:Event):void{
var my_loader:Loader = Loader(e.currentTarget);
full_tween = new Tween(my_loader, "alpha", Strong.easeOut, 1,0,0.5, true);
full_tween.addEventListener(TweenEvent.MOTION_FINISH, tweenFinished);

container_mc_tween = new Tween(container_mc, "alpha", Strong.easeOut, 0.5,1,0.5, true);
}
function donePb (e:Event):void{
var my_pb:ProgressBar = ProgressBar(e.target);
preloaders_mc.removeChild(my_pb);
my_pb.removeEventListener(Event.COMPLETE, donePb);
}
function tweenFinished (e:TweenEvent):void{
var my_loader:Loader = Loader (e.target.obj);
my_loader.unload();
full_mc.removeChild(my_loader);
removeChild(full_mc);
full_mc = null;
container_mc.addEventListener(MouseEvent.CLICK, callFull);
container_mc.buttonMode = true;
container_mc.addEventListener(MouseEvent.MOUSE_OVER, onOver);
container_mc.addEventListener(MouseEvent.MOUSE_OUT, onOut);

var my_tween:Tween = Tween(e.target);
my_tween.removeEventListener(TweenEvent.MOTION_FINISH, tweenFinished);
}
function onOver (e:MouseEvent):void{
var my_thumb:Loader = Loader(e.target);
my_thumb.alpha = 0.5;
}
function onOut (e:MouseEvent):void{
var my_thumb:Loader = Loader(e.target);
my_thumb.alpha = 1;
}
stage.addEventListener(MouseEvent.MOUSE_MOVE, moveMyMc);
function moveMyMc(e:MouseEvent):void{
    if(mouseX > 0){
        container_mc.rotationY = (20) -1 *(mouseX * (40 / stage.width));
    }
    if(mouseY > 0){
        container_mc.rotationX = (-20) + (mouseY * (40 / stage.height));
    }
}
导入flash.net.urloader;
导入flash.net.URLRequest;
导入flash.events.Event;
导入flash.display.MovieClip;
导入flash.display.Loader;
导入flash.display.DisplayObjectContainer;
导入flash.events.MouseEvent;
导入fl.controls.ProgressBar;
导入fl.transitions.Tween;
导入fl.transitions.easing.*;
导入fl.transitions.TweenEvent;
导入flash.geom.Matrix;
导入flash.geom.Rectangle;
//XML的详细信息
var列:编号;
变量my_x:编号;
变量my_y:编号;
变量my_thumb_width:数字;
变量my_thumb_height:数字;
var my_图像:xmlslist;
var my_总计:数量;
var容器:MovieClip;
/*
var dpObj=container_mc.getChildAt(0)//电影剪辑包含的dipslay对象或图形
var mat:Matrix=dpObj.transform.Matrix;
变量边界:Rectangle=container_mc.getBounds(dpObj);//获取相对于电影剪辑的边界
mat.tx=-bounds.left//左侧和顶部将是剪辑的注册点
mat.ty=-bounds.top;
*/
var full_mc:MovieClip;
var预紧器\u mc:MovieClip;
变量x_计数器:数字=0;
变量y_计数器:数字=0;
变量my_tweens:Array=[];
var容器与中间层:中间层;
变量满_tween:tween;
var myXMLLoader:URLLoader=新的URLLoader();
load(新的URLRequest(“gallery.xml”);
myXMLLoader.addEventListener(Event.COMPLETE,processXML);
函数processXML(e:Event):void{
var myXML:XML=newxml(e.target.data);
columns=myXML@columns;
my_x=(stage.stageWidth-(columns*110)+10)/2;
my_y=(stage.stageHeight-(columns*110)+10)/2;
my_thumb_width=myXML@width;
my_thumb\u height=myXML@height;
my_images=myXML.IMAGE;
my_total=my_images.length();
createContainer();
callThumbs();
myXMLLoader.removeEventListener(Event.COMPLETE,processXML);
myXMLLoader=null;
}
函数createContainer():void{
container_mc=new MovieClip();//ino dorostesh kon-bayad pivotesh vasat bashe
容器_mc.x=我的_x;
容器_mc.y=我的_y;
addChild(容器和mc);
容器添加事件列表器(MouseEvent.CLICK,callFull);
container_mc.addEventListener(MouseEvent.MOUSE_OVER,onOver);
container_mc.addEventListener(MouseEvent.MOUSE_OUT,onOut);
container_mc.buttonMode=true;
预紧器_mc=新的MovieClip();
预紧器_mc.x=集装箱_mc.x;
预紧器_mc.y=集装箱_mc.y;
addChild(预加载程序和mc);
}
函数callThumbs():void{
对于(变量i:Number=0;i