我有一个最初在[-100,-100]坐标(左上角)创建的符号。现在我将这个符号的实例放在[0,0]阶段坐标的舞台上(通过在IDE中用鼠标拖动它)。有了这个实例,我还能以某种方式确定动作脚本的原始[-100,-100]位置吗? (myInstance.x
返回阶段坐标)。
我做了什么:
this.myInstance.x
(只返回舞台坐标)
为什么我这样做:
我正在尝试将此movieclip放入BitmapData:
var myClip:MovieClip = this.myInstance;
var bmp:BitmapData = new BitmapData(myClip.width, myClip.height);
bmp.draw(myClip);
问题是BitmapData看起来只占用位于正坐标的剪辑的一部分。为了克服这个问题,我需要提供具有相应偏移的变换矩阵:
var m:Matrix = new Matrix();
m.tx = 100;
m.ty = 100;
bmp.draw(myClip, m);
如果我知道原始符号坐标在舞台上被丢弃之前,我就可以计算出这个偏移量。
希望这是有道理的。
答案 0 :(得分:5)
// get bounds including strokes
// traces (x=-105, y=-105, w=110, h=110)
trace(myInstance.getBounds(myInstance));
// get bounds excluding strokes
// traces (x=-100, y=-100, w=100, h=100)
trace(myInstance.getRect(myInstance));
答案 1 :(得分:0)
我想我明白你在说什么。如果你的符号里面有一个名字对象,我想你可以做到这一点。例如,如果您的符号在(x,y)处有一个名为myImage的图像。我相信你可以使用mySymbol.myImage.x或mySymbol.myImage.y。这是你的意思吗?
答案 2 :(得分:0)
通过收听Point对象中的 Event.ADDED_TO_STAGE ,您的对象可以在移动到舞台之前存储其位置。
答案 3 :(得分:0)
感谢您的澄清,现在更有意义了!
您要问的是如何找到MovieClip内部图形的坐标是否正确?为此,您必须将图形存储在另一个符号中。因此,只需双击符号并选择其中的所有图形。按F8键使其成为另一个符号并为其指定一个实例名称(例如bar)。基本上你正在做的是在MovieClip中制作一个MovieClip。
现在当你向舞台添加一个符号实例(比如它的名字是foo)时,只需要执行foo.bar.x或foo.bar.y,你就会看到图形位置。