AS3中显示对象层级的控制

来源:互联网 发布:图片矩阵 编辑:程序博客网 时间:2024/05/22 18:23
1、在FLA中,新建三个球体。。。分别名称"ball1"、、、依次;
2、main代码:

package
{
  import flash.display.Sprite;
  
  /**
  * ...
  * @author 沙子 QQ:8286659 http://www.taoshaw.com
  */
  public class main extends Sprite
  {
    private var my_ball1:ball1;
    private var my_ball2:ball2;
    private var my_ball3:ball3;
    private var my_sprite:Sprite;
    public function main()
    {
      my_ball1 = new ball1();
      my_ball1.x = 130;
      my_ball1.y = 220;
      my_ball2 = new ball2();
      my_ball2.x = 160;
      my_ball2.y = 190;
      my_ball3 = new ball3();
      my_ball3.x = 170;
      my_ball3.y = 230;
      my_sprite = new Sprite();
      my_sprite.addChildAt(my_ball1,0)
      my_sprite.addChildAt(my_ball2,1)
      my_sprite.addChildAt(my_ball3, 2)
      //交换显示对象的层级
      //my_sprite.setChildIndex(my_sprite.getChildAt(1),0)
      my_sprite.swapChildren(my_ball2, my_ball1)
      my_sprite.swapChildrenAt(2, 1)
      my_sprite.setChildIndex(my_sprite.getChildAt(2),0)
      //输出显示对象的层级getChildIndex()
      //trace(my_sprite.getChildIndex(my_ball1))
      //输入层级中都有哪些显示对象
      trace(my_sprite.getChildAt(2))
      //此句很关键,必须添加到显示列表中,否则不予显示
      addChild(my_sprite)
    }
  }
  
}

其中说明一下:
1、要将对象显示到元件上。建议先新建一个空Sprite,然后Sprite.addChildAt("显示对象",层级),这里需要注意一下。显示的时候。要按照顺序。。。即Sprite的0、1、2、3这样依次类推;
2、交换显示对象层级方法一般说来有三种:
A、my_sprite.swapChildren(my_ball2, my_ball1);
B、my_sprite.swapChildrenAt(2, 1)。此种是交换层级。
C、my_sprite.setChildIndex(my_sprite.getChildAt(2),0),