Actionscript 3 检测舞台上随机出现的电影片段

Actionscript 3 检测舞台上随机出现的电影片段,actionscript-3,Actionscript 3,我正在用AS3做一个游戏 我有一个类“Dechets”,其中3个电影片段随机出现 public var _classes:Array = new Array(coco1, coco2, coco3,coco4); public var _cocoMovieClips:Array = new Array(); public function cocoAppear(event : TimerEvent):void{ var cocoMc:DisplayObject

我正在用AS3做一个游戏

我有一个类“Dechets”,其中3个电影片段随机出现

    public var _classes:Array = new Array(coco1, coco2, coco3,coco4);
    public var _cocoMovieClips:Array = new Array(); 

    public function cocoAppear(event : TimerEvent):void{
    var cocoMc:DisplayObject = new _classes[Math.floor(Math.random() * _classes.length)]();
    _cocoMovieClips.push(cocoMc);
    stageRef.addChild(cocoMc);
    cocoMc.addEventListener(MouseEvent.CLICK, removeCoco, false, 0, true); 
                trace( getOnStage() );

}
        public function removeCoco(event:MouseEvent):void{
var cocoMc:DisplayObject = event.target as DisplayObject;
    if (!cocoMc) return; // typecast failed
    cocoMc.parent.removeChild(cocoMc);
            trace(cocoMc);
}
那么,你知道我该怎么说吗

    if(cocoMc == "coco4"){
    doSomething();

}
?


感谢您的帮助

如果您只想知道您的阵列中的哪个在舞台上:

function getOnStage():DisplayObject
{
    for(var i:int = 0; i < _classes.length; i++)
    {
        if(_classes[i] is DisplayObject)
        {
            var o:DisplayObject = _classes[i] as DisplayObject;
            if(stage.contains(o)) return o;
        }
    }

    return null;
}

问题是什么

你想知道舞台上有什么东西吗?当您将项目从舞台上移除时,可以尝试从阵列中移除这些项目,或者如果您希望将第一个项目保留在所有项目中,则可以为此制作第二个阵列

例:

之后,您可以只跟踪阵列:

trace( _cocoMovieClips );
如果您有很多类型需要测试,您可以更换:

// if you want to check the type of your mc
if( cocoMc is coco4 )         doSomething();
else if( cocoMc is coco3 )    doSomethingElse();
作者:


还有,看看这些,因为我觉得你们在这个案子的未来会需要这些
flash.utils.getQualifiedClassName
flash.utils.getDefinitionByName
谢谢。但是你给我的密码有错误。错误1170:函数不返回值。知道为什么吗?游戏从你给我的更新函数开始,但是当调用该函数时,我得到了以下错误:错误#1034:类型强制失败:无法将coco1$转换为flash.display.MovieClipIts,因为CoCoCo1在数组中。。但我需要这样做,以便随机添加coco2,coco3..等有解决方案吗?@user2421975您的意思是
coco1
\u类中
?完美!非常感谢。
trace( _cocoMovieClips );
// if you want to check the type of your mc
if( cocoMc is coco4 )         doSomething();
else if( cocoMc is coco3 )    doSomethingElse();
var classe:String = getQualifiedClassName( cocoMc);
classe = classe.substring( classe.lastIndexOf(':')+1 );
switch( classe )
{
    case 'coco1': doSomething1(); break;
    case 'coco2': doSomething2(); break;
    case 'coco3': doSomething3(); break;
    case 'coco4': doSomething4(); break;
}