AS3中读取子对象的四种方法

AS3中读取子对象的四种方法


        这段日子在公司实习,学习新语言ActionScript3,遇到过这么一个问题,在容器中获取子对象,大部分的回答都是三种:getChildAt()、getChildByName()、 getObjectsUnderPoint()。但是有时候通过这三种方法很难get到想要的对象,而且效率除了第一种,其他的也都不高,那么,接下来,稍稍介绍一下是哪四种吧。
        

  1. getChildAt(深度)
    范围为:0-(numChildren-1),效率最高的一个方法。
    可以通过该方法自己定义递归函数遍历舞台中所有的子对象。
  2. getChildByName(元件名)
    通过遍历的方式,找到第一个符合姓名的子对象后冒泡返回。一般来说,大家用这个方法都可以找到舞台中想要的对象,但是,如果需要使用的对象不是舞台容器的子对象,那么可能造成一个问题:通过该方法找不到想找的元件!因为该方法只能找到它的子对象。
  3. getObjectsUnderPoint(点对象)
    通过传入指定的坐标,返回一个数组,返回的数组包括指定坐标下的所有子对象。
  4. 通过符号“.”+元件名或者[“元件名”]
    这是重点(敲黑板)!
    在AS2中,其实存在这个方法,但是在AS3中,因为多了三个查找子对象的方法,所以这个方法是不推荐使用的(但是真的很好用,还很快,效率高!)。
    我们加载外部舞台时,都是通过Loader类来加载,然后里面的content就是我们加载的swf文件的内容,是一个MovieClip类型的对象,这个时候,我们只需要通过一个MovieClip类型的成员变量来保存这个content,就可以在需要的地方进行快速的调用了。使用方法如下:
 var request:URLRequest =new URLRequest("需要加载的swf文件路径");
 var loader:Loader=new Loader();
 loader.load(request);
 var content:MovieClip=loader.content as MoiveClip;
 //接下来我需要调用舞台中mc容器下的btn元件
 //下面两种方法都可以达到取子对象的效果
 var obj=content.mc.btn;
 //var obj=content["mc"]["btn"];

如果有刚学AS3的同学,我写了一个AS3的学习心得,大家可以借鉴一下,里面记录了一些我觉得有用的点,希望能帮助大家。
因为正在学习,所以思想上和使用上可能存在问题,如果有问题,希望大家可以在评论区指出,我一定改正,谢谢。
这是我的总结的文档,一份pdf,一份word,如果需要自己添加新东西的同学推荐下载word文档,如果只是参考学习的同学推荐使用pdf学习,更方便些。
如果点击出现问题的,请复制下面的链接手动打开:
链接:https://pan.baidu.com/s/1s_BXZfa1dwv94U542rz4wg
提取码:7xo0

你可能感兴趣的:(AS3)