1

在舞台上我有三种movieclips mc2; mc3 ....它们在舞台上可见 很少有静态movielips“othermc1; othermc2l othermc3 ...并且它们具有“visible = false” 一个在舞台上移动的movieclip,他的名字是“slider”我有mc时的功能“滑块”与 mc1、mc2 的其余部分之一相交...以变为可见的 othermc1、othermc2

var alreadyHandled:Boolean = false;

addEventListener(Event.ENTER_FRAME, onEnterFrame);

function onEnterFrame(e:Event):void
{
    if(mc1.getRect(this).intersects(slider.getRect(this)))
    {
        if(!alreadyHandled)
        {
            show1();
            alreadyHandled = true;
        }
    }
    else
    {
        alreadyHandled = false;
        no1();
    }

function show1():void
{
    othermc1.visible = true;
}
function no1():void
{
    othermc2.visible = false;
}

我如何在循环中使用此代码?感谢帮助

4

1 回答 1

1

如果要循环通过 mc1、mc2、mc3、... 创建一个Arrayof MovieClips:

var movieClips:Array = [mc1,mc2,mc3/*,other...*/];

然后用于for遍历数组元素:

for(var i:int=0; i<movieClips.length; i++){
   //do some thing with movieClips[i]
}

此代码可以帮助您:

var mc:Array = [mc1,mc2,mc3/*,...*/];
var omc:Array = [othermc1,othermc2,othermc3/*,other...*/];
addEventListener(Event.ENTER_FRAME, onEnterFrame);

function onEnterFrame(e:Event):void
{
    for(var i:int=0; i<mc.length; i++)
        if(mc[i].getRect(this).intersects(slider.getRect(this)))
            showMovieClip(i); //or omc[i].visible=true;
        else
            hideMovieClip(i); //or omc[i].visible=false;
}
function showMovieClip(i:int):void
{
    omc[i].visible = true;
}
function hideMovieClip(i:int):void
{
    omc[i].visible = false;
}
于 2013-09-06T11:53:03.350 回答