如何在as3中使用move_to_top

时间:2013-11-04 15:07:37

标签: actionscript-3 flash

我试图让这个代码让对象走到前面:

flap1.addEventListener(MouseEvent.CLICK, move_to_top); // Add the button click

function move_to_top(e:MouseEvent):void {

movieclip1.setChildIndex(this, movieclip1.numChildren-1);

}

但是我得到错误#2025:提供的DisplayObject必须是调用者的子代。

如果对象位于前面,则需要像j http://api.jquery.com/animate/那样在jquery中执行类似.animation的操作,尤其是带有动画块1和块2的演示:

$( "#go1" ).click(function() {
  $( "#block1" )
    .animate({
      width: "90%"
    }, {
      queue: false,
      duration: 3000
    })

但比as3

2 个答案:

答案 0 :(得分:0)

编写代码的方式是将this移动到movieclip1个孩子的顶部。你确定要这么做吗?错误为您提供了一个完美的理由:this不是movieclip1的孩子。

我想你想把movieclip1移到this的孩子的顶端。这样你应该像这样写代码:

this.setChildIndex(movieclip1, this.numChildren - 1);

关于动画部分,我认为你正在使用Actionscript 3中的补间。我建议使用Greensock's TweenMax Library,它非常容易掌握,可以免费用于非订阅和非赌博项目。

答案 1 :(得分:0)

我会假设您要移动的物体是flap1? 而且flap1是movieclip1的孩子吗?

在这种情况下,你需要的是:

movieclip1.setChildIndex(flap1, movieclip1.numChildren-1);

您所描述的错误完全正确,您引用的DisplayObject需要是被调用者的子对象。在这种情况下,调用者是movieclip1(因为它调用方法setChildIndex)。而且flap1是movieclip1的孩子。