我会这样处理它(我假设项目符号是您从库中添加的电影剪辑)。
我使用僵尸和植物作为已经在舞台上的电影剪辑的示例,您手动将其传递到 liveObjects 数组中。
对于更大规模的游戏,显然你不会硬编码,但我试图去掉额外的东西以使示例更容易理解)
import flash.events.Event;
import flash.display.MovieClip;
var liveObjects:Array = [
zombie1, // A MovieClip on the stage
zombie2, // ditto
zombie3, // ditto
plant1, // ditto
plant2 // ditto
];
// Create bullet
var bullet:Bullet = new Bullet();
bullet.x = 200;
bullet.y = 200;
addChild( bullet );
bullet.addEventListener( Event.ENTER_FRAME, f );
var i:int = 1;
var moveX:int = 1;
var moveY:int = 1;
function f( e:Event ){
var thisBullet:MovieClip = ( e.currentTarget as MovieClip );
thisBullet.x += moveX * i;
thisBullet.y += moveY * i;
i++;
for( var j:int; j < liveObjects.length; j++ ) {
if( thisBullet.hitTestObject( liveObjects[ j ] ) ) {
trace( "Hit " + liveObjects[ j ] );
}
}
};