如何判断MovieClip跨越时间轴的帧数

时间:2012-06-11 17:37:14

标签: actionscript-3 flash

我们喜欢使用我们将一系列幻灯片与声音同步的效果。当声音播放时,我们会显示每张幻灯片(它是MovieClip中自己的帧),并慢慢向上缩放幻灯片以提供一点点移动。我们的声音往往相当于父时间轴上的一帧,因此我们会查看该帧播放的声音,以计算每张幻灯片的显示时长。

我们遇到的问题是偶尔我们需要"伸展"两个或多个幻灯片中的一个动画,这意味着我们需要向前看,并根据显示包含幻灯片图像的MovieClip的帧范围内声音的组合长度来计算幻灯片长度。

但是,我还没有能够找到一个属性,告诉我MovieClip的显示时间线帧数(注意这与总帧不同,剪辑包含的帧数< / em>的)。只是一厢情愿地认为这样的财产存在,或者有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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;
        }

    }
}