Ваша ошибка не в понимании того, как работают экземпляры.
Библиотека - это не хранилище, это как коллекция чертежей. Каждый раз, когда вы используете оператор new , вы создаете новый экземпляр в соответствии с вашим планом в Библиотеке (или новым экземпляром класса, который не связан с каким-либо конкретным объектом библиотеки, например пустым ). новый контейнер Sprite ).
С другой стороны, все, что вы заранее спроектировали на сцене, существует как финальные экземпляры. Если вы спроектировали один TextField , на самом деле нет ничего, кроме одного TextField .
Представьте, что у вас есть одно яблоко ( TextField экземпляр) и машина, которая производит ( новое блюдце ) бумажные пакеты. Вы делаете бумажный пакет и кладете свое яблоко. Вы делаете другой пакет и кладете свое яблоко во второй пакет. Теперь вы получаете картину, верно? Первая сумка теперь пуста, даже если вы явно не указали удаление яблока из первой сумки.
Чтобы решить эту проблему, вам нужно иметь TextField , уже спроектированный внутри Блюдце в Библиотеке. Таким образом, когда вы создаете экземпляр новой тарелки , у вас будет TextField , также созданный для новой тарелки из библиотеки. Дайте этому TextField имя экземпляра (например, "Формула") и адресуйте его по нему. Ваш код будет выглядеть так:
// Content container.
var aGroup:Sprite = new Sprite;
// The list of Saucers.
var aUFO:Array = new Array;
// The list of Saucer's TextFields.
var aField:Array = new Array;
// Instantiation loop.
for (var i:int = 0; i < 4; i++)
{
// Create a new instance of Saucer object.
var mcUFO:Saucer = new Saucer;
aGroup.addChild(mcUFO);
aUFO[i] = mcUFO;
// Obtain the unique TextField reference from the Saucer
// you are currently working on.
aField[i] = mcUFO.getChildByName("Formula");
// Assign text to the TextField.
aField[i].text = "FillText" + i;
// No need, TextField is already positioned by design.
// aField[i].x -= 21.5; // aField[i].y -= 8;
// Instantiate a Dome from the library
// (but you can do the same and pre-design Dome into the Saucer).
var mcDome:Sprite = new Dome;
mcUFO.addChild(mcDome);
// Position the Dome.
mcDome.x -= 54;
mcDome.y -= 35;
}
С другой стороны, вы можете использовать все сценарии и создавать новые TextField экземпляры, но имейте в виду, что вам нужно будет установить каждое свойство этого нового экземпляра, иначе вы можете не увидеть ни текста, ни чего-либо еще всего:
var textArea:TextField;
textArea = new TextField;
textArea.x = 10;
textArea.y = 10;
textArea.border = true;
textArea.wordWrap = false;
textArea.multiline = true;
textArea.selectable = true;
textArea.background = true;
var aFormat:TextFormat;
aFormat = textArea.getTextFormat();
aFormat.font = "_typewriter";
aFormat.size = 12;
aFormat.align = TextFormatAlign.LEFT;
textArea.setTextFormat(aFormat);
textArea.defaultTextFormat = aFormat;