0

我正在尝试为我的班级做一个小项目,虽然我知道如何做很长一段时间,但我更愿意以更直观的方式来做,这样我就可以避免复制和粘贴大量的内容相同的代码。这个想法是有一个函数,它将创建一个具有自己唯一名称的类对象的实例,设置它的位置/大小/等,然后将该子对象添加到舞台。看看这个(我现在拥有的)可能会有所帮助。

//Set up variables for all deco pieces
var decoGreen:GreenBall;
var decoRed:RedBall;
var decoStar:Star;
var decoFlower:Flower1;
var decoYellow:YellowBall;
var decoBlue:BlueBall;

//Functions to allow easier object placement
function makeDeco(posX:Number, posY:Number, decoName:String, rootClass:Object):void
{
    decoName = new (rootClass)();
    decoName.x = posX;
    decoName.y = posY;
    addChild((decoName));

}
makeDeco(90,320,"greenBall",GreenBall)

现在显然这段代码不起作用,而且现在很粗糙,但我认为这足以理解我在这里想要完成的事情。感谢所有试图破译我的烂摊子的人!:D

4

1 回答 1

0

您与我所知道的非常接近,如果我理解您的问题,那将只是使用该getDefinitionByName课程

function makeDeco(posX:Number, posY:Number, decoName:String):void
{
    var DecoClass:Class = getDefinitionByName(decoName) as Class;
    var deco:DisplayObject = new DecoClass();
    deco.x = posX;
    deco.y = posY;
    addChild((deco));
}
makeDeco(90,320,"greenBall")

您不需要像最初那样定义变量,因为它们在库中都设置为“导出为动作脚本”。例如,调用“greenBall”字符串意味着您在库中有一个影片剪辑,其类名为greenBall

于 2013-10-07T21:25:24.623 回答