如何在 EaselJS 中获取影片剪辑的当前位置(帧)

How do I get the current position (frame) of a movie clip in EaselJS?

本文关键字:位置 EaselJS 获取      更新时间:2023-09-26

我有一个淡入然后淡出的影片剪辑。我想找到此影片剪辑中的中途标记并暂停它。但是在 EaselJS 中,我找不到任何方法来获取影片剪辑的当前帧位置。这可能吗?

我想做如下事情:

 canvas = document.getElementById("introCanvas");
        exportRoot = new lib.MyMovieClip();
        exportRoot.onTick = function () {
            //get the mc's length in frames
            //get the current frame position
            //if current frame postion == mc's lenght / 2
                   //then pause movie clip

        };

谁能为我提供一些关于如何完成上述工作的建议或想法?

谢谢!

通读文档后,似乎自动分配了一个TweenJS Timeline来管理动画中的更改,看起来不像我们在 Flash 中看到的任何实际帧。

如果您查看 TweenJS 时间轴的文档,您可以使用 duration 属性,如文档所述:

只读属性,指定此时间线的总持续时间(以毫秒为单位)(如果 useTicks 为 true,则为时钟周期)。此值通常会在您修改时间线时自动更新。有关详细信息,请参阅更新持续时间。

因此,如果您获得持续时间并除以 2,或乘以 0.5 ;)然后你可以找到动画的中间点。尝试在您的onTick方法中使用它,看看它是否有效。

我总是这样做...

(movieclip.timeline.position)%movieclip.timeline.duration

或者换句话说...

var tl = movieclip.timeline;
var d = timeline.duration;
(tl.position)%d

您必须获取影片剪辑的时间轴的位置和持续时间,并添加一个%。这将获取影片剪辑的当前帧。