PDA

Просмотр полной версии : Параметр contentPath из внешнего файла


Orthank
06.11.2006, 16:24
Добрый день, уважаемые Flasher'ы!
Столкнулся с проблемой при создании флешки с видео. На основной сцене у меня слева FLVPlayback, а справа список видео на выбор. Причем фишка - при загрузке флешки должно грузится видео, которое я назначаю во внешнем текстовом файле. Я назначаю переменную, гружу в нее данные из текстового документа, а затем пишу, что contentPath = эта переменная. Но ничего не работает...
Код:
var file = new XML();
file.load("virgin.txt");
FLVPlybk.contentPath = file;

PS Также не получается список фильмов на просмотр составлять на основе внешнего XML так, чтобы каждый новый <entry> был ссылкой для Видео-компонента...
Заранее благодарен!

silin
06.11.2006, 16:46
var file:XML = new XML();
file.onLoad=function(){
FLVPlybk.contentPath =file.toString();
}
file.load("virgin.txt");

Orthank
06.11.2006, 19:15
Премного благодарен!!!
А также не могли бы подсказать, что сделать чтобы список фильмов (тот что справа) работал на основе XML (графы: название, длительность, описание, ссылка на видео-файл), причем каждый отдельный фильм - ссылка, при нажатии на которую в видео-компонент передается новый contentPath и начинается проигрываение?
Я думаю должно быть что-то типа - каждый новый <entry> в XML-файле - это отдельная кнопка с заданным кодом для нажатия...
Для списка я на данный момент имею код:
В первом кадре:
var finished = 0;
var doc = new XML();
doc.load("news.xml");
... Потом в 3-ем:
if(!doc.loaded) gotoAndPlay(2);
И в 4-ом
var cY=0;
var node=doc;
var date;
var author;
var url;
var from;
var tex;
var l=1;
var lines = new Array();
var i;
var pos=0;
if(node.firstChild!=null) {
node=node.firstChild;
while(node!=null && node.nodeName==null) {
node=node.nextSibling;
}
node=node.firstChild; while(node!=null) {
if(node.nodeName!=null){
date=node.attributes.date;
author=node.attributes.sender;
url=node.attributes.url;
tex=node.firstChild.nodeValue;
if(url!='')author="<a href='"+url+"'>"+author+"</a>";
attachMovie("entry", "entry_"+l, l );
this["entry_"+l]._x=0;
this["entry_"+l]._y=cY;
this["entry_"+l].date=date;
this["entry_"+l].author=author;
lines=tex.split(chr (10));
cY+=14; l++;
dix=0
for(i=0;i<lines.length;i++){
if(lines[i]!="") dix=1;
if(dix!=0){
attachMovie("textline", "tl_"+l+"_"+i, l );
this["tl_"+l+"_"+i].body=lines[i];
this["tl_"+l+"_"+i]._y=cY;
cY+=14; l++;
}
}
}
node=node.nextSibling;
}
}
finished=1;
stop();Что надо дописать, чтобы он делал каждый новый объект (фильм) отдельным мувиком и ставил ссылку на нажатие?

to silin
Еще раз спасибо!

silin
06.11.2006, 19:42
>>А также не могли бы подсказать, что сделать чтобы список фильмов (тот что справа) работал на основе XML
то, что он справа несколько осложняет задачу :), но попробовать можно :
-разобрать XML
-создать кнопки/мувики с текстами (название, описание..) и свойствами (ссылка, длительность..)
-на онПресс повесить нужные действия..

зы: в чем трабл не ясно..

Orthank
06.11.2006, 21:15
Проблема в том, что изначально неизвестно сколько элементов (фильмов) будет в XML, поэтому нужно чтобы флеш программно создавал мувики + вешал код на нажатие + вставлял в мувик описание и брал ссылку из XML.
Я понимаю, что кода будет довольно много, но вы бы очень помогли сказав как: программно создавать мувики, чтобы на каждый новый из них вешалась следующая ссылка из XML; куда в данном выше коде вставлять код создания мувика и добавления в него всей нужной информации.
Заранее благодарен!

silin
06.11.2006, 22:13
для примера кода будет не много
в библиотеке создай мувик с linkage Identifier "linkageID" и текстфилдом внутри, var тектфилда пусть будет "label"..
в руте напиши
var mc=this.attachMovie("linkageID","mc",0,{_x:20,_y:100,label:"my text"});
mc.onPress=function(){
trace(this.label);
}
и все увидишь..

зы: 'куда в данном выше коде вставлять..' занятие бестолоковое..

Что такое хорошо?
07.11.2006, 13:57
Проблема в том, что изначально неизвестно сколько элементов (фильмов) будет в XML, поэтому нужно чтобы флеш программно создавал мувики + вешал код на нажатие + вставлял в мувик описание и брал ссылку из XML.
Я понимаю, что кода будет довольно много, но вы бы очень помогли сказав как: программно создавать мувики, чтобы на каждый новый из них вешалась следующая ссылка из XML

Сколько у тебя в XML элементов, столько и будет создано мувиков.
Для этого используй циклы:

xml_3 = new XML();
xml_3.ignoreWhite = true;
xml_3.load("my_list.xml");
//
xml_3.onLoad = function(ok) {
if (ok) {
yP = 0;
xP = 25;
//
txtNodes = xml_3.firstChild.childNodes;
//--------------------------------------------------------
for (i=0; i<txtNodes.length; i++) {
_zaata4ennoe = swf["block_"+nf].slot.attachMovie("atta4_hide", "atta4_"+i, swf["block_"+nf].slot.getNextHighestDepth(), {_x:xP, _y:yP});
}

Orthank
07.11.2006, 18:46
Спасибо огромное за помощь, но фишка в том, что у меня уже все работает, кроме становления кнопкой каждого отдельного фильма, поэтому полностью код переделывать не хочется. Я прикрепил исходник, там все есть. Но я не могу представить куда надо писать код, чтобы каждый новый элемент (<entry>) из XML-файла становился кнопкой и посылал код на FLVPlayback при нажатии. Прошу вас указать место куда вставлять код и какого типа он должен быть или какие функции использовать, чтобы все работало.
Заранее благодарен за помощь!

silin
07.11.2006, 19:39
нормальная позиция: код переделывать не хочется, желающие это сделать за меня, приступайте...

Orthank
07.11.2006, 19:52
Прошу прощения, если мои слова выглядят как то, что вы сказали, но я же попросил просто указать место куда надо вставлять код. Или и правда надо полностью его переписывать?

silin
07.11.2006, 20:07
секретное место 'куда надо вставлять код' не сдадим и под пыткой.. :)
если серьезно, то у меня, например, никакого желания править чужой код, раскиданный к тому же по кадрам мувиков, если сам автор не в курсе куда там чего писать.., сам посуди: это ж не вопрос, а предложение сделать..

Orthank
08.11.2006, 01:23
Вы правы. В любом случае благодарен за помощь!

Orthank
08.11.2006, 04:02
Появился вопрос:
А есть ли возможность в тексте (форматированном как HTML) создавать ссылки с повешенным Java Script'ом на них?
Или есть ли возможность в коде, где
if(url!='')author="<a href='"+url+"'>"+author+"</a>";Вместо всего этого ("<a href=...") повесить код с созданием нового символа и так далее?

iNils
08.11.2006, 13:55
Orthank, у вас уже есть один плюс за не использование тегов , еще хотите?

silin
08.11.2006, 18:26
см. asfunction

Orthank
08.11.2006, 21:47
Спасибо, вижу как все должно работать, но не работает...
Пишу код:

if(url!='')author="<a href='asfunction:videoLink'>"+author+"</a>";
function videoLink() {
_level10.FLVplybk.stop();
_level10.FLVPlybk.contentPath=url;
_level10.FLVplybk.play();
}
...

Но ничего не происходит при нажатии. Я думаю, что может я что-то с путем до Видео-компонента напутал... Просто эта флешка (список фильмов) подгружается в основную, где и находится Видео-комп.
Прошу указать на ошибку в коде.
Заранее благодарен!

silin
09.11.2006, 00:09
опять за старое (Прошу указать на ошибку в коде): нет ошибки, если videoLink() срабатывает и FLVplybk действительно лежит в _level10 (поставь trace(_level10.FLVPlybk), посмотри), то должно работать..

зы: насчет 'может я что-то с путем напутал' : да почему ж не может, оч. даже запросто, тока не интересно это никому, тем более в этом разделе ..