【问题标题】:Make movieclips appear randomly in AS3使动画剪辑在 AS3 中随机出现
【发布时间】:2016-04-27 10:30:48
【问题描述】:

现在我在舞台上的特定位置有六个老鼠位置。这些鼠标根据在影片剪辑本身内部的时间轴上所做的调整而移动。我的目标是根据计时器随机启动这六个影片剪辑。我目前正在努力完成这项任务..

这是我的代码;

var clipArray:Array = new Array();

clipArray[0] = musx0_mc;
clipArray[1] = musx1_mc;
clipArray[2] = musx2_mc;
clipArray[3] = musx3_mc;
clipArray[4] = musx4_mc;
clipArray[5] = musx5_mc;



var i:int = 0;

var musTimer:Timer = new Timer(100);

musTimer.addEventListener(TimerEvent.TIMER, playMus);

function playMus(event:TimerEvent):void
{
    for(i=0; i<clipArray.length; i++)
    {
        var randomMus:Number = Math.floor(Math.random()*100);        
        clipArray[randomMus].play();
    }
}

musTimer.start();

【问题讨论】:

    标签: actionscript-3 flash


    【解决方案1】:

    看来你想得到0到5个随机数。

    //var randomMus:Number = Math.floor(Math.random()*100); // returns 0 to 99
    var randomMus:int = Math.floor(Math.random()*6);    // returns 0 to 5
    

    也许这段代码有效。

    var clipArray:Array = new Array();
    clipArray[0] = musx0_mc;
    clipArray[1] = musx1_mc;
    clipArray[2] = musx2_mc;
    clipArray[3] = musx3_mc;
    clipArray[4] = musx4_mc;
    clipArray[5] = musx5_mc;
    
    var musTimer:Timer = new Timer(100);
    musTimer.addEventListener(TimerEvent.TIMER, playMus);
    
    function playMus(event:TimerEvent):void
    {
        //for(i=0; i<clipArray.length; i++) // What is this loop??
        //{
            //var randomMus:Number = Math.floor(Math.random()*100);
            var randomMus:int = Math.floor(Math.random()*6);
            clipArray[randomMus].play();
        //}
    }
    
    musTimer.start();
    

    【讨论】:

    • 老鼠继续同时从洞里出来,即使你做了调整。
    • 我认为这个答案是在正确的轨道上,问题是它可以再次启动相同的元素。为避免这种情况,请从数组中删除开始的MovieClip,并以此为基础进行索引计算。此外,@JonasDuvsethe 每个MovieClip 都会自动开始播放。在时间线的第一帧上没有stop(),它们都同时开始:立即。对.play() 的调用以后可能会发生也可能不会发生,这不会改变任何事情。
    猜你喜欢
    • 1970-01-01
    • 2016-07-02
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 2010-11-05
    • 1970-01-01
    相关资源
    最近更新 更多