首先我没有编译器错误,但我的EACH没有工作
for each( var enemy:Enemy in army )
{
enemy.moveDownAbit();
}
我用for for替换了for EACH,我收到了这个错误。
我不知道如何修复它,因为我是AS3的新手。
这是我的Enemy.as
public class Enemy extends MovieClip
{
public function Enemy(startX:Number, startY:Number)
{
x=startX;
y=-startY;
}
public function moveDownAbit(): void
{
y=y+3;
}
}
答案 0 :(得分:0)
如果你只是因为它而取代了它是不够的。
以下示例
for var enemy:Enemy in army )
{
enemy.moveDownAbit();
}
确实会尝试阅读陆军的所有“属性”而不是循环查看它们的列表。 当您想要打印对象的属性/值时,这很有用 例如:
class Person
{
public var name:String = "Object name";
public var age:int = 20;
}
function doForLoop()
{
var myPers:Person = new Person();
// here your loop
for (var prop:String in myPers)
{
trace(prop+" = "+myPers[prop]);
}
// ---- previus loop will trace:
// name = Object name
// age = 20
// whet you actually need is
for(var i:int = 0 ; i < army.length ; i++)
{
var enemy:Enemy = army[i] as Enemy;
// do your work now
enemy.moveDownAbit();
}
}
希望解释有所帮助。