动画时实例消失

时间:2011-10-24 08:15:42

标签: flash actionscript-3 animation

我制作了一个MovieClip并将其附加到下面的代码。当我测试电影并且我已经在舞台上放置了一个实例时,它工作正常。当我通过代码实例化对象并将其添加到舞台时它会消失点击它。我在flash中工作。

package {

import flash.display.MovieClip;
import flash.events.MouseEvent;
import fl.transitions.easing.*;

import com.greensock.*; 

public class Card6 extends MovieClip {

    public function Card6( )        {
        addEventListener(MouseEvent.CLICK, Enter);
    }
    private function Enter( ev : MouseEvent ) {
        TweenMax.to(this, 0.25,  { rotationY: 180 }  );
    }
  }
}

这是我从库中实例化MovieClip的代码,Card6是基类。

var photo: MovieClip = new PhotoB( );
photo.x = 100;
photo.y = 300;
stage.addChild(photo);

更新: 我成功地使它工作我不知道如何,因为我没有改变代码。问题是我不知道什么是解决方案,我在其他示例中遇到相同的问题。 这是我在第一帧中使用的代码并且有效。

var sp : DisplayObject = new border( ); //<-- Different name,same Object
addChild(sp);
sp.x = 400;
sp.y = 300;

这是我用于主类的代码

package {

import flash.display.MovieClip;

public class DocumentH extends MovieClip {

    public function DocumentH( )    {
    var sp : MovieClip = new border( );
    addChild(sp);
    sp.x = 400;
    sp.y = 300;
    }
  }
}

我无法分辨是什么导致了差异和工作。我尝试在另一个fla中做同样的事情并且失败。在库中我只有一个广场,它已经将它转换为MovieClip。 (这是与fla http://www65.zippyshare.com/v/65975812/file.html)的链接。我使用的是Flash CS4 Pro

2 个答案:

答案 0 :(得分:0)

我猜它与3d变换中心点有关 - 当你将它添加到舞台时,它们被设置为相关对象的中心。尝试在z = 0之前设置addChild(),初始化3d矩阵,然后查看它是否也会立即消失。

如果是这样,您可能需要查看动画片段中0点的位置,或者甚至可以在其上进行3d变换而不是常规的x,y变换。

编辑: 如果没有关于图书馆项目外观的更多信息,很难确切地知道需要做什么,但是尝试翻译与移动方式相反的三维矩阵,例如移动后的photo.transform.matrix3D.appendTranslation(-100, -300, 0);。同时尝试将所有位置设置为0,并使Flash播放器窗口变大,以便您可以看到您的对象。这应该会给你一些正在发生的事情的暗示:)

答案 1 :(得分:0)

尝试将持续时间更改为5秒钟,以便您可以看到补间。