![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: May 2008
Сообщений: 11
|
Здравствуйте уважаемые! Есть такая проблема.
есть мувик, в котором есть текстовые поля: hdr,sub,txt и текстовый файл следующего содержания. hdr=Заголовок1&sub=Подзаголовок1&txt=Первая строка. hdr=Заголовок2&sub=Подзаголовок2&txt=Вторая строка. hdr=Заголовок3&sub=Подзаголовок3&txt=Третья строка. Задача организовать отображение каждой из строк в текстовых полях с интервалом в 30 сек. пробовал следующий вариант: System.useCodepage = true;
n=0;
astr = new LoadVars();
astr.load("scroll.txt");
astr.onLoad = function()
{
var str:Array = astr.split("\r\n");
}
function ChangeString(n) {
for (var i = n; i < str.length; i++) {
hdr.text = str[i].hdr;
sub.text = str[i].sub;
txt.text = str[i].txt
}
}
{
setInterval(ChangeString(n),750);
n++
}
Последний раз редактировалось yarik_tv; 13.05.2008 в 15:35. |
|
|||||
|
listener
|
yaric_tv, для оформления кода используйте теги [code][/code]
уберите System.useCodepage = true; сохраните ваш файл в кодировке utf-8. переменная str - локальная, ее нет за пределами фигурных скобок, где она объявлена. у класса LoadVars нет метода split(). файл с данными оформлен неверно, надо все писать в одну строку. иначе, надо использовать для загрузки класс XML. var lv:LoadVars = new LoadVars();
lv.onLoad = function(success:Boolean):Void {
if (success == true) {
for( var i=0; i<=3; i++){
trace(lv['hdr'+i]);
trace(lv['sub'+i]);
trace(lv['txt'+i]);
}
} else {
txt.text = "unable to load";
trace("unable to load");
}
};
// в файле tdata.txt одна строка
//hdr1=Заголовок1&sub1=Подзаголовок1&txt1=Первая строка.&hdr2=Заголовок2&sub2=Подзаголовок2&txt2=Вторая строка.&hdr3=Заголовок3&sub3=Подзаголовок3&txt3=Третья строка.&
lv.load("tdata.txt");
Последний раз редактировалось alexcon314; 13.05.2008 в 15:48. |
|
|||||
|
Регистрация: May 2008
Сообщений: 11
|
файл динамически создается из MSSQL базы и выкладывается в каталог. Кол-во строк различается от 5 до 1000, поэтому в одну строку вариант не подходит. Вот сейчас пробовал таким методом:
var a:Array = new Array();
var lv:LoadVars = new LoadVars();
lv.onData = function(src) {
if (src != undefined) {
a = src.split("/n/r");
trace(a);
}
};
lv.load("scroll.txt",lv);
hdr=Заголовок1&sub=Подзаголовок1&txt=Первая строка. А вот как из нее получить значения для текстовых полей по таймеру!!!? вот если бы можно было loadVariables(a, _target); |
|
|||||
|
я бы предложил использовать xml файл, это более простой способ получения данных из файла, т.к. если использовать класс LoadVars() не избежать различного рода изврата.
с классом LoadVars() и вашим текстовым файлом код будет выглядеть примерно так: var res_lv:LoadVars = new LoadVars();
var ar = new Array();
res_lv.onData = function(src) {
ar = src.split("\r\n");
for (var i = 0; i<ar.length; i++) {
lv = new LoadVars();
lv.decode(ar[i]);
ar[i] = lv;
}
for (var i in ar[0]) {
trace("ar[0]."+i+" = "+ar[0][i]);
}
};
res_lv.load("1.txt");
<r> <item hdr='Заголовок1' sub='Подзаголовок1' txt='Первая строка.'/> <item hdr='Заголовок2' sub='Подзаголовок2' txt='Вторая строка.'/> <item hdr='Заголовок3' sub='Подзаголовок3' txt='Третья строка.'/> </r> var res_xml:XML = new XML();
res_xml.ignoreWhite = true;
var ar = new Array();
res_xml.onLoad = function(src) {
var node = this.firstChild.childNodes;
for (var i = 0; i<node.length; i++) {
ar[i] = node[i].attributes;
}
for (var i in ar[0]) {
trace("ar[0]."+i+" = "+ar[0][i]);
}
};
res_xml.load("1.xml");
|
|
|||||
|
Регистрация: May 2008
Сообщений: 11
|
спасибо за оба варианта, но я наверное в "танке", как все же отобразить данные в DinamicTextField-ах по интервалу. в Trace отображается только первая строка, понятно, чтоб отобразить вторую нужно задать trace("ar[1]."+i+" = "+ar[1][i]);
но вот как это сделать динамически и отображать в текстовых полях? |
|
|||||
|
вот вам самый примитивный пример работы с интервалами, если внимательно почитаетете хелп во всем сможите разобраться, но вам, по сути, остается объеденить 2 куска кода, с небольшими дополнениями
|
|
|||||
|
Регистрация: May 2008
Сообщений: 11
|
var n:Number = 0;
var res_xml:XML = new XML();
res_xml.ignoreWhite = true;
var ar = new Array();
res_xml.onLoad = function(src) {
var node = this.firstChild.childNodes;
setInterval(interval, 1000, n);
function interval() {
for (var i = 0; i<node.length; i++) {
ar[i] = node[i].attributes;
}
trace(n);
for (var i in ar[n]) {
hdr.text = ar[n]["hdr"];
sub.text = ar[n]["sub"];
txt.text = ar[n]["txt"];
}
n++;
}
};
res_xml.load("1.xml");
|
|
|||||
|
Регистрация: May 2008
Сообщений: 11
|
пытался, но особых успехов не достигнуто даже с хелпом, к сожалению. Все гуд если менять n - вручную, а програмно результат не изменяется.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 18:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|