随机化存储在儿童中的已保存的动画片段

时间:2012-03-06 02:10:58

标签: actionscript-3 flash

我在actionscript 3.0中遇到一些代码很难。我不知道如何随机化存储在儿童上的动画片段并且只挑选8个动画片段,其中存储了10个动画片段。我希望你能帮我解决这个问题。感谢

以下是代码:

    //start stage function
    this.mainmc.addEventListener (Event.ENTER_FRAME, setupStage1);
    this.waitingCounter=0;

//set up current stage
function setupStage1 (e:Event) {
    //wait for timeline
    if (this.waitingCounter<2) {
        this.waitingCounter++;
        //not ready yet, do nothing
        return;
    }
    //Start the timer
    timer.start();
    //hide hint
    this.mainmc.hintmc.visible=false;
    //hide star animation
    this.mainmc.starAnimation.visible=false;
    //listener for hint button
    this.mainmc.hintbut.addEventListener (MouseEvent.CLICK, showHint1);
    //create objects array
    this.obArr=[];
    //count the objects on stage
    for (var n=0; n<this.mainmc.numChildren; n++) {
        //get the children
        var ob=this.mainmc.getChildAt(n);
        //only take movie clips
        if (ob is MovieClip) {
            //only count the movie clips that have name declared
            if (ob.myname!=null) {
                //push to array
                this.obArr.push (MovieClip(ob));
            }
        }
    }

在上面的代码中,代码将存储舞台中存在的所有动画片段。它将它们存放在一个孩子身上。每10个动画片段都有一个变量名“myname”。

1 个答案:

答案 0 :(得分:1)

如果您只是想对数组中的项目进行随机排序,请使用array.sort方法并在sort函数中,只需创建1到2之间的随机数。如果为1,则返回true,如果为2,则返回false 。这是一个actionscript 2片段以及一些教程的链接:

var a:Array = new Array(“a”, “b”, “c”, “d”, “e”);
function shuffle(a,b):Number {
var num : Number = Math.round(Math.random()*2)-1;
return num;
}
var b:Array = a.sort(shuffle);
trace(b);

http://mrsteel.wordpress.com/2007/05/26/random-array-in-as2-as3-example-using-sort/

http://sierakowski.eu/list-of-tips/75-random-sort-function-comes-handy-when-building-applications-with-playlists.html

这是一篇更长,更深入的教程:
http://active.tutsplus.com/tutorials/actionscript/quick-tip-how-to-randomly-shuffle-an-array-in-as3/