首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用AS3定时器来执行和循环不同长度的影片剪辑?

如何使用AS3定时器来执行和循环不同长度的影片剪辑?
EN

Stack Overflow用户
提问于 2011-05-13 10:25:47
回答 2查看 2.1K关注 0票数 0

我如何使用计时器一次启动多个电影剪辑,然后如果它们都是不同的长度,那么如何循环它们,以便它们再次同步重新启动?

例如,在t=0,开始3个电影剪辑。影片剪辑%1的长度为3秒。影片剪辑2的长度为6秒。影片剪辑3有10秒长。影片剪辑1将在影片剪辑2和3之前结束,但我不希望在其他两个都完成之前重新启动。

例如,定时器不是从10秒开始倒计时然后播放,而是倒计时到下午12:00,然后播放电影剪辑。如果这是可能的,有人能告诉我怎么做吗?

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2011-05-13 10:39:53

下面是我将如何回答您的第一个问题-只需将您所有的动画MovieClips添加到mcs数组中。

代码语言:javascript
复制
var mcs:Array = [mc1,mc2,mc3];

// work out the longest running MovieClip
var longest:MovieClip = mcs[0];

var i:MovieClip;
for each(i in mcs)
{
    if(i.totalFrames > longest.totalFrames) longest = i;

    i.addEventListener(Event.ENTER_FRAME, animation);
}

/**
 * Check animation progress on each MovieClip
 */
function animation(e:Event):void
{
    var m:MovieClip = MovieClip(e.target);

    if(m.currentFrame == m.totalFrames)
    {
        m.stop();

        if(m == longest)
        {
            var i:MovieClip;
            for each(i in mcs)
            {
                i.gotoAndPlay(1);

                // your own actions here
                // for when all animation completes
            }
        }
    }
}

至于后一个问题,我不确定您为什么要这样做,但这里有一个足够简单的方法:

代码语言:javascript
复制
var d:Date = new Date();
var time:String = d.getHours() + ":" + d.getMinutes();

var ran:Boolean = false;
if(time == "12:00" && !ran)
{
    ran = true;
    // being your animations etc
}
票数 0
EN

Stack Overflow用户

发布于 2011-05-13 10:48:38

将此代码用于最长的剪辑:

代码语言:javascript
复制
longestClip.addFrameScript(longestClip.totalFrames, restartAllMyClips);

restartAllMyClips是一个可以将它们全部重启的函数。

说得通吗?

对于时间问题--您可以让上面的代码调用一个名为waitAndPlay( time )的函数

基本上,在该函数中,您可以计算该时刻和您作为参数传递的时间之间的时间量。

然后,您只需为该持续时间设置一个计时器。在该计时器上设置监听程序以执行restartAllMyClips。

所以就像这样:

代码语言:javascript
复制
var waitTimer:Timer = new Timer(duration, 1);
waitTimer.addEventListener(TimerEvent.TIMER_COMPLETE, restartAllMyClips);
waitTimer.start();

这里有一些关于addFrameScript()的信息-- http://blog.rackdoll.nl/?p=118

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5986653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档