Просмотр полной версии : Список
1. Я создал эффект элемента списка
2. Надо считывать из текстового файла name.txt разделы, которые отделены друг от друга переводом строки ASCII-код которого, вроде chr(13), по крайней мере, это было указано в посте, которыйю я по этому поводу прочитал:
Пост: "Как прочитать массив из файла?"
http://www.flasher.ru/forum/showthread.php?t=40512&highlight=%F2%E5%EA%F1%F2%EE%E2%FB%E9+%EC%E0%F1%F1%E8%E2
Надеялся что поможет... :(
Вот значит, добавляю я к своему исходному коду следующее:
x = new XML();
x.onData = function(ok) {
_root.massive = ok.split(chr(13));
trace(_root.massive);
};
x.load("name.txt");
И... Ничего не получается! Список элементов не появился! Помогите пожалуйста, не могу разобраться как это сделать...
Файл моих мучений прилагается.
St. Father
24.04.2006, 18:15
x = new XML ();
massive = new Array ();
x.onLoad = function ()
{
_root.massive = String(this).split (chr(13));
trace (_root.massive);
};
x.load ("name.txt");
RandomUser
24.04.2006, 18:15
Не знаю как это надо делать с ХМЛ, но если name.txt - это обычный текстовый файл, то я бы сделал так:
x=new LoadVars();
x.load("name.txt");
x.onLoad=function(ok) {
if(ok) {
_root.massive = this.data.split(chr(13));
trace(_root.massive);
} else trace ("Loading Error");
};
А в самом name.txt перед твоим списком добавил:
data=Раздел 1
Раздел 2
Раздел 3
...
RandomUser
24.04.2006, 18:22
В общем... Если там поставить System.useCodepage=true, то у меня все ок...
Загружаеться как миленький, по крайней мере трейсит все нормально.
Это в твоем варианте, Olejan.
Кто-нибудь, можете исходник выложить с работающими вашими изменениями - хоть убей не работает у меня ни один из предложенных примеров!!! :(
RandomUser
24.04.2006, 18:39
Хм...
Я говорю, что все что надо у тебя загружается, а вот что там ты с этим делаешь дальше? По моему вот там как раз у тебя проблемы...
Скажем так: ни одного обращения к _root.massive я у тебя не видил, кроме трейса...
Может так ?
for(i=0;i<_root.massive.length;i++)
И сам цикл запихнуть в функцию, которая бы вызывалась после загрузки name.txt, т.е. в onData
2 St. Father:
А цикл и обращение к элементам импортированного массива у меня правильное? Вот весь код с твоими усправлениями:
// массив из файла name.txt
x = new XML ();
massive = new Array ();
x.onLoad = function ()
{
_root.massive = String(this).split (chr(13));
trace (_root.massive);
};
x.load ("name.txt");
ii=mc;
// цикл
for(i=0;i<20;i++){
ii.txt.nc=ii.txt.c=ii.txt.cc=0;
ii.txt.col=new Color(ii.txt);
ii.txt.col2=new Color(ii.bg);
ii.txt.txt.autoSize=true;
ii.text=x[i];
ii.txt.onRollOver=function(){this.nc=255;this.q=.4;};
ii.txt.onRollOut=ii.txt.onReleaseOutside=function(){this.nc=0;this.q=.15;};
ii.txt.onEnterFrame=function(){
if(this.cc!=this.nc){this.cc+=(this.nc-this.cc)*this.q;if(Math.abs(this.nc-this.cc)<=.5){this.cc=this.nc;};};
if(this.c!=this.cc){this.c=this.cc;this.c0=int(this.c);this.c1=75+int(((255-this.c)/255)*50);this.col.setTransform({rb:this.c30,bb:this.c30,gb:this.c30});this.col2.setTransform({ra:this.c1,ba:this.c1,ga:this.c1});}
};
ii.txt.onPress=function(){this.cc=300;this.onEnterFrame()};
ii.txt.onRelease=function(){};
}
Почему у меня не работает? :( Подскажите, плиз!
2 RandomUser:
Может здесь (ii.text=x[i];) или здесь (for(i=0;i<20;i++)) ошибка?
2 RandomUser:
Мне, на самом деле, тоже ближе без XML. Можешь исходник прикрепить работающий?
St. Father
24.04.2006, 18:48
если не пашет - значит неправильное :)
ii.text=x[i]; - здесь ошибка? Подскажи, как правильно?
Последнее сообщение было обращено к St. Father.
RandomUser
24.04.2006, 19:05
Держи...
2 RandomUser:
Большое спасибо тебе!!! Огроменное!
Последняя просьба. Как сделать распределение по полученным из текстового файла пунктам меню обработку событий? Т.е. функция:
ii.txt.onRelease=function(){};
- как ее наполнить, чтобы можно было при onRelease попадать на соответствующие (соответствующие i) кадры определенного мувика (допустим с названием razdeli)?
RandomUser
24.04.2006, 19:24
ii.txt.onRelease=function(){
opredelenniyMovik.gotoAndStop(this._parent.text);
};
А в opredelenniyMovik-е сделать метки на соответствующих кадрах
раздел 1
раздел 2
...
Которые соответствуют загруженным из name.txt
Вроде должно работать.
Почему у меня не работает? :( Подскажите, плиз!
Огромная просьба пользоваться тегом [CODE] для отбражения кода в ваших сообщениях
2 RandomUser:
Что-то не работает... Лучше вообще просто на порядковые номера кадров ссылаться...
2 KUZEN:
ОК.
RandomUser
24.04.2006, 20:18
Хозяин - барин...
Интересно, а что ты будешь делать, если тебе вдруг, когда-нибудь понадобиться изменить порядок этих пунктов в меню?
В идеале, нужно было-бы в name.txt к названиям пунктов добавить еще и их код, который бы соответствовал бы номеру нужного кадра.
Впрочем, тебе виднее.
_____________________________________________________
Проще - не значит лучше...
Так как это сделать, что-то код:
ii.txt.onRelease=function(){
opredelenniyMovik.gotoAndStop(this._parent.text);
};
не делает что надо... :(
RandomUser
24.04.2006, 21:07
А ты сначала сделай все это дело, чтобы оно работало через порядковые номера, а уже потом я смогу подать тебе парачку умных (или не очень) мыслей...
Если бы я мог это сделать - не спрашивал бы и не обращался бы с просьбой!
Ну как, скажи, пожалуйста!
RandomUser
24.04.2006, 21:30
В том самом цикле сохраняешь свою переменную i в каждом приатаченом мувике, а при нажатии на него в неком определенном мувике переходишь к кадру номер i.
...
ii.txt.numKeyframe=i;
ii.txt.onRelease=function() {
opredelenniyMovik.gotoAndStop(this.numKeyframe);
};
...
opredelenniyMovik - это твой мувик в котором находяться разделы, каждый в соотв. кадре.
___________________________________________________________
Не всех война убила - многих покалечила...
// массив из файла name.txt
System.useCodepage=true;
a = new XML();
a.onData = function(ok) {
x = ok.split(newline);
qwe();
};
a.load("name.txt");
function qwe() {
var ii;
// цикл
for(i=0;i<x.length;i++) {
ii=attachMovie("razdel1.spisok.item", "item"+i, i);
ii._x=10;
ii._y=i*15;
ii.txt.nc=ii.txt.c=ii.txt.cc=0;
ii.txt.col=new Color(ii.txt);
ii.txt.col2=new Color(ii.bg);
ii.txt.txt.autoSize=true;
// переход - то, что ты мне последнее посоветовал...
ii.txt.numKeyframe=i;
ii.txt.onRelease=function() {
mov.gotoAndStop(this.numKeyframe);
};
ii.text=x[i];
ii.txt.onRollOver=function(){this.nc=255;this.q=.4;};
ii.txt.onRollOut=ii.txt.onReleaseOutside=function(){this.nc=0;this.q=.15;};
ii.txt.onEnterFrame=function(){
if(this.cc!=this.nc){this.cc+=(this.nc-this.cc)*this.q;if(Math.abs(this.nc-this.cc)<=.5){this.cc=this.nc;};};
if(this.c!=this.cc){this.c=this.cc;this.c0=int(this.c);this.c1=75+int(((255-this.c)/255)*50);this.col.setTransform({rb:this.c30,bb:this.c30,gb:this.c30});this.col2.setTransform({ra:this.c1,ba:this.c1,ga:this.c1});}
};
ii.txt.onPress=function(){this.cc=300;this.onEnterFrame()};
}
}
Не работает. В чем же дело, подскажи?, при этом файл с именем mov находится на сцене...
RandomUser
24.04.2006, 21:46
ii.txt.onRelease=function() {
mov.gotoAndStop(this.numKeyframe);
trace("Keyframe="+this.numKeyframe+"; clip="+mov);
};
Посмотри что будет выводиться... По идее 0; _label0.mov, 1; _label0.mov... если сверху кликать по пунктам.
И глянь, у тебя в мувике mov 20 ключевых кадров (у тебя же разделов 20?)?
И в каждом кадре у тебя где-нибудь прописано название раздела или его номер? Как ты определяешь что нифига не пашет?
И что здесь ваще может не работать? Может и правду серое вещество...
Вот исходник. Посмотри сам, ПРОШУ ТЕБЯ!!! А то я ща с ума сойду тут...
:wacko:
RandomUser
24.04.2006, 21:58
Дык... Все работает!
Только ты не забывай, что нумерация кадров начинается с 1.
А у тебя 1-й кадр ваще пустой, только stop().
т.е.
ii.txt.numKeyframe=i+2;
СПА-СИ-БО!!!
ОГРОМНОЕ!!!
P.S. Есть идеи по усовершенствованию, автоматизации изобретения? :)
RandomUser
24.04.2006, 22:15
Купи себе книгу по action script-у. Или любую другую книжку по программированию для чайников.:)
По-моему просто гениальная идея...
Без шуток: завтра куплю!
Какая лучшая по AS2 ?
дядя Джо
25.04.2006, 00:25
Без шуток: завтра куплю!
Какая лучшая по AS2 ?Лучшая книга В.Маяковский 'Что такое хорошо и что такое плохо.' Вам товарищ, нужна не книжка, вам лучше нанять учителя, который вам подробно будет отвечать по порядку, и тогда вы лучше все усвоите. А так сразу все вместе только создаст Action Script кашу в голове. :rtfm:
2 дядя Джо:
Да что ты пристал к моим постам?!!
НА!!! Смотри:
http://www.flasher.ru/forum/showthread.php?p=525400&posted=1#post525400
дядя Джо
25.04.2006, 00:56
Товарищ, Olejan, вы сами настойчиво просили вам помочь, а теперь говорите что к вам пристают.:( Скажите в чем должна выражаться помощь? Если вы хотите освоить флэш, то выучить наизусть руководство по AS, и прислушивасться к советам - это лучшее что можно сделать! Но если вам трудно это сделать самостоятельно, то вам надо найти учителя, который вам будет все разъяснять. Если такой учитель как я вас не устраивает, так прямо и скажите, что великих вождь и учитель народов мне не подойдет! И можете продолжать писать посты, я больше вам отвечать не буду, с уважением дядя Джо!:cool:
Великих вождь - как мой учитель и наставник в изучении AS мне подходит! :) Если Вы, Иосиф Виссарионович, можете мне помочь - я с интересом выслушаю и впитаю все слова великого деятеля.
P.S. Как метко Вы выразились в далеких 40-х: "Незаменимых людей нет!"
P.P.S. Но надеюсь на Вашу помощь!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.