Я вызываю классы разных типов из цикла. Объекты могут быть разных типов, поэтому я использую метод getDefinitionByName
. вот кусок моего кода:
for(var y = 0; y < mapH; y++)
{
brickHolder[y] = new Array();
for(var x = 0; x < mapW; x++)
{
var classRef = getDefinitionByName('com.objects.Brick2') as Class;
var brick:Brick2 = Brick2(new classRef());
brick.name = x+""+y;
brick.getBall(ball);
brick.getEngine(this);
brick.x = x * brick.bWidth + brick.bWidth;
brick.y = y * brick.bHeight + 100;
numberOfBricks += 1;
addChild(brick);
}
}
Единственная проблема в том, что я должен привести этот объект к определенной переменной:
var brick:Brick2 = Brick2(new classRef());
Я думал об использовании интерфейса и его приведении следующим образом:
var brick:IBrick = IBrick(new classRef());
Но я получил ошибку, когда попытался вызвать методы. Интерфейс пустой; не имеет в нем никаких методов. Я не уверен, что это имеет значение. Но родительский класс наследует его, а подклассы наследуют родительский класс. Могу ли я вместо этого использовать родительский класс?
var brick:ParentBrick2 = ParentBrick2(new classRef());
В двух словах, что я могу сделать, чтобы свободно преобразовать эти объекты, чтобы я мог использовать любые вызываемые методы подкласса?