Я звоню на классы разных типов из цикла. Объекты могут быть разных типов, поэтому я использую метод 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());
В двух словах, что я могу сделать, чтобы свободно привести эти объекты, чтобы я мог использовать любые методы подкласса, которые были вызваны?