Столкнулся в AS3.0 с проблемой следующего характера.
Есть типизированный массив текстовых полей Vector.<TextField>. В каждое текстовое поле этого массива подгружается текстовая иноформация из внешнего XML-файла. При разработке вроде бы все правильно прописано, компилирует, но при запуске пишет ошибку в аутпуте следующего характера:
TypeError: Error #1010: Термин не определен и не имеет свойств.
at News/createNewsField()
at News/completeListener()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()**
При этом на стэйдже отображается только первое текстовое поле с текстом из XML, а остальные не хочет.
**По идее, этих ошибок вообще не должно возникать, потому что все указанные выше методы не имеют отношения к массиву текстовых полей, а к конструктору и к лоадеру. Но если не работать с массивом, ошибок не выдает и все работает нормально.
Далее идет скрипт, мож кто увидит в чем ошибся, пока не нашел сам…
Листинг:

Код AS3:
package {
import flash.display.*;
import flash.text.*;
import flash.events.*;
import flash.net.*;
public class NewsPrimitive extends Sprite {
// Constants:
// Public Properties:
private var newsXML:XML;
private var urlLoader:URLLoader;
private var arrField:Vector.<TextField> = new Vector.<TextField>();
// Private Properties:
// Initialization:
public function NewsPrimitive() {
createGraphicsContainer();
XMLLoader();
}
// Public Methods:
public function XMLLoader() {
var urlRequest:URLRequest = new URLRequest("news.xml");
urlLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, completeListener);
urlLoader.load(urlRequest);
}
// Protected Methods:
private function completeListener(e:Event):void {
newsXML = new XML(urlLoader.data);
createNewsField(newsXML.BLOCK);
}
private function createGraphicsContainer():void {
var graphicsContainer = new Sprite();
addChild(graphicsContainer);
}
private function createNewsField(blocks:XMLList):void {
var ii:int;
for each (var block:XML in blocks) {
arrField[ii]=new TextField();
arrField[ii].text += "Date: " + block[ii].DATE +"\nText: " + block[ii].TXT + "\n\n";
arrField[ii].autoSize = TextFieldAutoSize.CENTER;
arrField[ii].y+= 100;
addChild(arrField[ii]);
ii+=1;
}
}
}
}
Спасибо.