Actionscript 3 检测舞台上随机出现的电影片段
我正在用AS3做一个游戏 我有一个类“Dechets”,其中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
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;
}