Как вставлять текст из txt.* файла я разобрался. Но как вставить именно ту строчку, которую нужно? Например, у меня есть текстовый файл, в нем две строки с разным текстом. Одну я называю stroka_1, вторую stroka_2. Задача осложняется тем, что в моей программе должен выводиться текст в зависимости от объекта, который выбрал пользователь. Я написал такой код.
Класс
Pass, который, по моей задумке, должен назначать нужную строчку в txt.* файле:
Код
package{
import flash.display.*;
import flash.text.*;
public class Pass extends Sprite{
public function Pass(){
var t:TextLoader=new TextLoader("stroka_1");
addChild(t);
}
}
}
Класс
TextLoader, который загружает текст и создает текстовое поле:
Код
package{
import flash.display.Sprite;
import flash.events.*;
import flash.text.*;
import flash.net.*;
public class TextLoader extends Sprite {
public function TextLoader(name:String):void{
var request:URLRequest = new URLRequest("istochnik.txt");
var loader:URLLoader = new URLLoader();
loader.load(request);
loader.addEventListener(Event.COMPLETE, completeHandler);
}
private function completeHandler(event:Event):void {
var loader2:URLLoader = URLLoader(event.target);
var variables:URLVariables = new URLVariables(loader2.data);
trace(variables.name);
var words:String=variables.name;
Slova(words);
}
function Slova(words:String):void{
var tekst:TextField=new TextField();
tekst.text=words;
tekst.wordWrap=true;
tekst.width=200;
tekst.autoSize=TextFieldAutoSize.LEFT;
addChild(tekst);
}
}
}
В итоге получается вот что:
undefined
TypeError: Error #2007: Parameter text must be non-null..
Видимо, проблема с передачей названия строки в функцию TextLoader. Как сделать правильно?
Собственно, нужно передать из внешнего класса в класс TextLoader название строчки, из которой предполагается брать данные.