Хорошо. Так что проблема здесь в небольшом недоразумении. Вы создаете экземпляр класса adamsboxmaker, и затем ссылка автоматически возвращается и сохраняется в переменной txt. Так работают объектно-ориентированные языки.
То, что вы пытаетесь сделать, это использовать фабричный метод для создания объекта. Чтобы реализовать это, измените ваш createBox на общедоступную статическую функцию
public static function createBox(boxWidth:Number,boxHeight:Number,lineColour:Number,lineThickness:int, beginFillColour:Number, fillIf:Boolean, fontColour:Number, fontSize:int, fontType:String, textWidth:Number, textHeight:Number, txt:String, Xoffset:Number, Yoffset:Number, textIf:Boolean){
и удалите вызов из конструктора.
public function adamsboxmaker(boxWidth:Number,boxHeight:Number,lineColour:Number,lineThickness:int, beginFillColour:Number, fillIf:Boolean, fontColour:Number, fontSize:int, fontType:String, textWidth:Number, textHeight:Number, txt:String, Xoffset:Number, Yoffset:Number, textIf:Boolean)
{
//removed call
}
Тогда все, что вам нужно сделать, это
txt = adamsboxmaker.createBox(paramters);
Re: Вопрос в комментарии
В этом случае вы хотите, чтобы ваш adamsboxmaker был коробкой. Поэтому сначала сделайте расширение класса MovieClip
public class adamsboxmaker extends MovieClip
{
Теперь вы можете считать, что экземпляр этого класса совпадает с контейнером: MovieClip, который вы создавали. Добавьте этот код в конструктор:
public function adamsboxmaker(boxWidth:Number,boxHeight:Number,lineColour:Number,lineThickness:int, beginFillColour:Number, fillIf:Boolean, fontColour:Number, fontSize:int, fontType:String, textWidth:Number, textHeight:Number, txt:String, Xoffset:Number, Yoffset:Number, textIf:Boolean){
var theBox:Shape = new Shape();
addChild(theBox); //we add it to this, rather than a container
theBox.graphics.lineStyle(lineThickness, lineColour);
if (fillIf == true)
{
theBox.graphics.beginFill(beginFillColour);
}
theBox.graphics.moveTo(0, 0);
theBox.graphics.lineTo(boxWidth, 0);
theBox.graphics.lineTo(boxWidth, boxHeight);
theBox.graphics.lineTo(0, boxHeight);
theBox.graphics.lineTo(0, 0);
if (fillIf == true)
{
theBox.graphics.endFill();
}
/*END BOX*/
if (textIf == true)
{
/*BUILD FORMATTING*/
var myFormat:TextFormat = new TextFormat();
myFormat.color = fontColour;
myFormat.size = fontSize;
myFormat.font = fontType;
/*END FORMATTING*/
/*BUILD TEXTFIELD*/
var theText:TextField = new TextField();
theText.text = txt;
theText.x = Xoffset;
theText.y = Yoffset;
theText.width = textWidth;
theText.height = textHeight;
theText.wordWrap = true;
theText.setTextFormat(myFormat);
container.addChild(theText);
/*END TEXTFIELD*/
}
visible = false;
}
Теперь вы можете идти
txt = new adamsboxmaker(parameters);
addChild(txt);