Flash:获取符号名

Flash:获取符号名,flash,actionscript,Flash,Actionscript,我在场景中有大约1000个对象,每个对象都有特定的符号名(“实例”),实例名为空。当我点击其中一个对象时,我能得到符号名吗?我可以引用这些对象,将它们设置为x、y等吗。。。?谢谢 as2/as3问题是相关的 这取决于你所说的点击是什么意思。如果您正在运行flash应用程序,则可以注册事件侦听器,以便在单击符号实例时获得位置。当需要从时间线上的父项访问符号时,符号需要名称 您可以使用getChildAt(index)方法访问MovieClip的子项,并使用numChildren字段i获取子项的数量

我在场景中有大约1000个对象,每个对象都有特定的符号名(“实例”),实例名为空。当我点击其中一个对象时,我能得到符号名吗?我可以引用这些对象,将它们设置为x、y等吗。。。?谢谢

as2/as3问题是相关的

这取决于你所说的点击是什么意思。如果您正在运行flash应用程序,则可以注册事件侦听器,以便在单击符号实例时获得位置。当需要从时间线上的父项访问符号时,符号需要名称

您可以使用getChildAt(index)方法访问MovieClip的子项,并使用numChildren字段i获取子项的数量为3:


是,如果您使用的是AS3,请按照以下步骤操作:

循环遍历每个对象并添加单击事件:

myObject1.addEventListener(MouseEvent.Click, onClick);
创建处理正在侦听的事件的方法:

function onClick(e:MouseEvent) {
   var myObject:Sprite = e.currentTarget as Sprite;

   myObject.x = 10; // etc

}
这将允许您在单击某个对象后获取该对象的引用并对其进行操作。

要查看该对象的实际操作:

我使用了
getChildAt
而不是符号名:

包{
导入flash.events.MouseEvent;
导入flash.display.MovieClip;
导入flash.display.Sprite;
公共类FlashTest扩展了Sprite{
公共功能测试(){
var container_mc:MovieClip=新的MovieClip();
这个addChild(container_mc);
var new_mc:MovieClip;

对于(var i:int=0;i您正在使用什么动作脚本…:)只要在as2或as3中可能,我就需要它工作
package {
    import flash.events.MouseEvent;
    import flash.display.MovieClip;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
            var container_mc:MovieClip = new MovieClip();
            this.addChild(container_mc);
            var new_mc:MovieClip;

            for(var i:int=0;i<50;i++){
                new_mc = new MovieClip();
                new_mc.graphics.beginFill(Math.random()*0xFF0000,08);
                new_mc.x = Math.random()*stage.stageWidth;
                new_mc.y = Math.random()*stage.stageHeight;
                new_mc.graphics.drawCircle(0,0,20);
                new_mc.graphics.endFill();
                //new_mc.addEventListener(MouseEvent.MOUSE_DOWN,pressMc);//you can add event here or[2*]
                container_mc.addChild(new_mc);
            }
            //[2*]if you have already childs inside parent MovieClip:

            var totalChilds:int = container_mc.getChildNums;
            for(var c:int=0;c<totalChilds;c++){
                var mychild_mc:* = container_mc.getChildAt(c);
                mychild_mc.addEventListener(MouseEvent.MOUSE_DOWN,pressMc);
            }
            function pressMc(e:MouseEvent):void{
                trace(e.target);
            }
        }
    }
}