请参阅带有tweenLite的父动画片段

时间:2014-07-07 18:00:18

标签: actionscript-3 flash

我在名为cerrarSumInfo的动画片段中有一个名为SumInfo的动画片段,cerrarSumInfo从舞台中删除SumInfo

代码:(在SumInfo时间轴上)

cerrarSumInfo.addEventListener(MouseEvent.CLICK, cerrarSum);

function cerrarSum(e:MouseEvent):void
{
        this.parent.removeChild(this);
        TweenLite.to(buscador, 0.7, {x:14, y:354.95});
}

buscador位于主时间轴上,所以当我测试时,我得到:

Access of undefined property buscador.

如何从buscador引用sumInfo

我解决了:

我解决了,所有问题都是因为:

this.parent.removeChild(this);
TweenLite.to(buscador, 0.7, {x:14, y:354.95});

Y在补间之前移除了孩子,是的,我向buscador请求:

MovieClip(root).buscador;

谢谢!

1 个答案:

答案 0 :(得分:1)

有几种方法可以从buscador内部获得对suminfo的引用。以下是两种方式:

  1. 使用root关键字获取对主时间轴的引用。

    MovieClip(root).buscador;
    
  2. 使用parent关键字:

    MovieClip(parent.parent).buscador; //one parent up is cerrarSumInfo, two parents up should be the main timeline
    

  3. 更简洁的方法是使用事件:

    1. 从此函数中取出补间:

      function cerrarSum(e:MouseEvent):void
      {
          this.parent.removeChild(this);
      }
      
    2. 然后,在主时间轴上:

      sumInfo.addEventListener(Event.REMOVED_FROM_STAGE, sumInfoRemoved); //listen for when sumInfo is removed
      
      function sumInfoRemoved(e:Event):void {
          TweenLite.to(buscador, 0.7, {x:14, y:354.95});
      }