第39行1067:将String类型的值隐式强制转换为不相关的类型Enemy

时间:2014-02-21 07:13:34

标签: actionscript-3 flash flash-cs5

首先我没有编译器错误,但我的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;
    }

}

1 个答案:

答案 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();
    }
}

希望解释有所帮助。