PDA

Просмотр полной версии : И опять LoadVars


Pro3ik
06.11.2007, 13:35
Читал-читал. Смотрел исходники - но видать я совсем что-то непонимаю.
Есть у меня мувиклип. В котором есть динамический текстфилд, в который я собссно и хочу засунуть текст из текстового файла, который лежит в корне возле fla.
И есть LoadVars как я его понимаю.

class BackForText extends MovieClip
{
function BackForText()
{
Mouse.addListener(this);
}
private function onMouseUp():Void
{
var motionTween...
motionTween.onMotionFinished = function():Void
{
var lV:LoadVars = new LoadVars();
lV.onLoad = onText;
lV.load("text1.txt");
function onText(success:Boolean)
{
if (success)
{
this.AStxt.text = lV.text1;
}
else
{
this.AStxt.text = "unable to load";
}
}
trace(lV);
}

при данном трэйсе мне выдаёт такую штуку:
onLoad=%5Btype%20Function%5D
Я никак не могу понять почему текст не выводится - ошибок мне не пишет, но и текста нет.
где AStxt - инстанс моего текстфилда

var lV:LoadVars = new LoadVars();
lV.onLoad = onText;
lV.load("text1.txt");
function onText(success:Boolean):Void
{
if (success == true)
{
this.AStxt.txt = lV.text;
trace(lV);
}
else
{
this.AStxt.text = "unable to load";
}
}

В таком виде оно мне трейсит текст из файла
txt=dsgdfhsfgjs&onLoad=%5Btype%20Function%5D
Значит что то с текстфилдом моим не так - или же в обращении к нему
А вот что? Помогите пожалуйста.

alexcon314
06.11.2007, 15:38
var lv:LoadVars = new LoadVars();
lv.onLoad = function (success:Boolean):Void {
if (success == true) {
this.AStxt.txt = lv.text;
trace(lv.text);
}else {
this.AStxt.text = "unable to load";
}
}
lv.load("text1.txt");

что у вас в текстовом файле?
должно быть примерно следующее (набрать и сохранить в "Блокноте", кодировка обязательно UTF-8)
text=мой текст

Pro3ik
06.11.2007, 15:53
что у вас в текстовом файле?
должно быть примерно следующее (набрать и сохранить в "Блокноте", кодировка обязательно UTF-8)
text=мой текст
Текст он трейсит - но не отображает. У меня скорей беда с настройками текстфилда. Только вот какими они должны быть я не знаю.

alexcon314
06.11.2007, 16:00
сделайте все по умолчанию для начала

this.createTextField("txt",10,10,10,100,100)
var lv:LoadVars = new LoadVars();
lv.onLoad = function (success:Boolean):Void {
if (success == true) {
txt.text = lv.text;
trace(lv.text);
}else {
txt.text = "unable to load";
trace("unable to load");
}
}
lv.load("text1.txt");

так не работает?
зачем у вас стоит this.AStxt.txt = lv.text;?

Pro3ik
06.11.2007, 16:06
сделайте все по умолчанию для начала

this.createTextField("txt",10,10,10,100,100)
var lv:LoadVars = new LoadVars();
lv.onLoad = function (success:Boolean):Void {
if (success == true) {
txt.text = lv.text;
trace(lv.text);
}else {
txt.text = "unable to load";
trace("unable to load");
}
}
lv.load("text1.txt");

так не работает?
зачем у вас стоит this.AStxt.txt = lv.text;?
this - потому как я обращаюсь к текстфилду находящемуся внутри моего мувика от которого собственно экстендится класс.
Да и без него оно выдаёт ошибку что якобы нет такого AStxt

alexcon314
06.11.2007, 16:51
txt=dsgdfhsfgjs&onLoad=%5Btype%20Function%5D
txt=dsgdfhsfgjs - эта строка из вашего файла?
тогда после загрузки к ней надо обратиться lv.txt, т.е.

this.AStxt.text = lv.txt;

trace(lv) просто выводит вам свойства объекта LoadVars в формате имя=значение&имя=значение....

Pro3ik
06.11.2007, 19:09
txt=dsgdfhsfgjs - эта строка из вашего файла?
тогда после загрузки к ней надо обратиться lv.txt, т.е.

this.AStxt.text = lv.txt;

trace(lv) просто выводит вам свойства объекта LoadVars в формате имя=значение&имя=значение....
Вот мой код.
var lV:LoadVars = new LoadVars();
lV.onLoad = function (success:Boolean):Void
{
if (success == true)
{
this.AStxt.text = lV.text;
trace(lV.text);
}
}
lV.load("text1.txt");
Трэйс в нём работает, показывает строку из текстовика. Но вот в клипе (в котором находится предварительно созданный динамический текстфилд) текста нет. Ошибок никаких несоздаёт. Что ещё можно протрейсить чтоб выяснить в чём дела понятия не имею. Видимо проблема в том что неправильный текстфилд создаю. Но пробовал уже почти всё что можно, а текста нет.

Molecula
06.11.2007, 19:41
А в хелпе почитать?
Вот рабочий код:
var my_lv:LoadVars = new LoadVars();
my_lv.onData = function(src:String) {
if (src == undefined) {
trace("Error loading content.");
return;
}
qwe.htmlText = src;
};
my_lv.load("text1.txt", my_lv, "GET");
Содержимое текстового файла:
<'b'>xcv<'/b'>xcvxcvxcvxvxcv
Ну ток без кавычек.

Pro3ik
06.11.2007, 20:12
Всем спасибо - я дурак. После того как я в сотый раз переделал в такую версию кода Molecula - ы понял наконец что всё нормально работает просто то что мне пишет _level0.instance4.AStxt - в текстфилде надо присвоить моему lV.
Так что всё уже работает в таком виде.
var lV:LoadVars = new LoadVars();
lV.onLoad = function (success:Boolean):Void
{
if (success == true)
{
_level0.instance4.AStxt = lV.text;
trace(lV.text);
}
}
lV.load("text1.txt");

Хотя в таком виде - тоже работало
var lV:LoadVars = new LoadVars();
lV.onData = function (scr:String):Void
{
if (scr == undefined)
{
trace("Error loading content.");
return;
}
_level0.instance4.htmlText = scr;
trace (scr)
}
lV.load("text1.txt", lV, "GET");

alexcon314
07.11.2007, 09:13
_level0.instance4.AStxt
как-то странно выглядит... неужели нельзя обратиться к текстфилду нормально, то бишь внутри класса по имени? вы ведь его в классе юзаете или это вообще левый какой-то тексфилд? и еще я не понял, почему вы упорно используете lv.text, когда в текстовом файле у вас стоит "txt=...", если я не ошибаюсь.