代码之家  ›  专栏  ›  技术社区  ›  serg

如何从actionscript获取本地符号坐标?

  •  0
  • serg  · 技术社区  · 14 年前

    我有一个最初创建的符号,坐标是[-100,-100]坐标(左上角)。现在,我将这个符号的一个实例放在舞台坐标为[0,0]的舞台上(通过在IDE中用鼠标拖动它)。有了这个实例,我还能以某种方式从actionscript中确定原始的[-100,-100]位置吗?( myInstance.x 返回阶段坐标)。

    我做什么:

    • 在创建期间,在位于-100,-100坐标的库中创建新符号
    • 将此符号的实例放在舞台上的不同坐标处
    • 在actionscript中,尝试从实例对象获取原始的-100值,例如:

    this.myInstance.x (仅此返回阶段坐标)

    我为什么这么做:

    我正在尝试将此movieclip放入位图数据中:

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

    我可以计算这个偏移量,如果我知道原始符号坐标,在它被放到舞台上之前。

    希望这是合理的。

    4 回复  |  直到 14 年前
        1
  •  5
  •   Claus Wahlers    14 年前
    // 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));
    
        2
  •  0
  •   Aaron Hathaway    14 年前

    我想我明白你在说什么了。如果你的符号中有一个名称对象,我认为你可以做到这一点。例如,如果您有一个符号,其中的图像名为myimage,位于(x,y)。我相信你可以用mysymbol.myimage.x或mysymbol.myimage.y。这就是你的意思吗?

        3
  •  0
  •   Aaron    14 年前

    您的对象可以通过倾听 事件。添加到\阶段 在点对象中。

        4
  •  0
  •   Obto    14 年前

    谢谢你的澄清,现在说得更有意义了!

    你要问的是如何在movieclip中找到图形的坐标?要做到这一点,您必须将图形存储在另一个符号中。所以,只需双击该符号并选择其中的所有图形。按F8使其成为另一个符号,并给它一个您喜欢的实例名称(例如,条)。基本上,你所做的就是在一个movieclip中制作一个movieclip。

    现在,当你在舞台上添加一个符号实例(比如它的名字是foo)时,只需做foo.bar.x或foo.bar.y,你就会看到图形位置。