0

我们有一个我们喜欢使用的效果,我们将一系列幻灯片与声音同步。随着声音的播放,我们显示每张幻灯片(在影片剪辑中它是它自己的帧),然后慢慢地放大幻灯片以提供一点移动。我们的声音往往相当于父时间轴上的一帧,因此我们查看该帧正在播放什么声音,以计算每张幻灯片应显示多长时间。

我们遇到的问题是,有时我们需要在两张或多张幻灯片上“拉伸”其中一个动画,这意味着我们需要向前看并根据帧跨度期间声音的组合长度计算幻灯片长度,其中显示包含幻灯片图像的 MovieClip。

但是,我无法找到一个属性来告诉我一个 MovieClip 显示了多少时间轴帧(请注意,这将不同于总帧数,即剪辑包含的帧数)。存在这样的财产只是一厢情愿,还是有人可以指出我正确的方向?

4

2 回答 2

0

我不确定我是否正确理解了这个问题,但您尝试过 MovieClip.currentFrame 吗?

于 2012-06-11T17:45:15.343 回答
0

你能创建一个这样的类,它会跟踪它在 DisplayList 上出现的帧数:

package
{

    import flash.display.MovieClip;
    import flash.events.Event;


    public class ExtMovieClip extends MovieClip
    {

        // Properties.
        private var _lifetime:int = 0;


        // Constructor.
        public function ExtMovieClip()
        {
            addEventListener(Event.ADDED_TO_STAGE, _added);
        }


        // Was added to the DisplayList.
        private function _added(e:Event):void
        {
            removeEventListener(Event.ADDED_TO_STAGE, _added);

            addEventListener(Event.ENTER_FRAME, _track);
            addEventListener(Event.REMOVED_FROM_STAGE, _removed);
        }


        // Was removed from the DisplayList.
        private function _removed(e:Event):void
        {
            removeEventListener(Event.REMOVED_FROM_STAGE, _removed);
            removeEventListener(Event.ENTER_FRAME, _track);

            addEventListener(Event.ADDED_TO_STAGE, _added);
        }


        // Increment the lifetime of this MovieClip.
        public function _track(e:Event):void
        {
            _lifetime ++;
        }


        // Retunrns the lifetime of this MovieClip.
        public function get lifetime():int
        {
            return _lifetime;
        }

    }
}
于 2012-07-03T03:31:03.260 回答