我目前正在寻找一种既有效又有效的方法来以有效的方式创建、控制和删除影片剪辑。我想做的是创建一个控制器类,它将使用数组和这个脚本处理影片剪辑的创建和删除......
private static var enemyShips:Array = new Array();
public static function addEnemy(ship:MovieClip):void
{
enemyShips.push(ship);
trace(enemyShips.length);
ship.id = enemyShips.length - 1;
Globals._stage.addChild(ship);
}
public static function getEnemy():Array
{
return enemyShips;
}
public static function removeEnemy(i:int):void
{
var ep:ExplosionParticle;
for(var j:int = 0; j < 150; j++)
{
ep = new ExplosionParticle(enemyShips[i].x, enemyShips[i].y);
Globals._stage.addChild(ep);
}
Globals._stage.removeChild(enemyShips[i]);
updatePositions(enemyShips, i+1);
enemyShips.splice(i, 1);
}
private static function updatePositions(array:Array, position:int):void
{
for(var i:int = position; i < array.length;i++)
{
array[i].id -=1;
}
}
对于一些变量的快速简单的解释,全局变量允许在类中创建实例,而不能直接访问舞台。
此脚本工作正常,直到出现两种情况。
第一种情况是在同一帧中创建两个影片剪辑,第二种情况是删除。
我知道这是因为在帧中创建或删除第一个影片剪辑时,会发生数组排序,使第二个影片剪辑位置为空。然而,我的问题是,有什么更有效的方法来控制这种情况以防止这种情况发生?
请记住,这是为了控制动态创建的影片剪辑实例。
非常感谢,
攻略00321