|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Mar 2012
Сообщений: 61
|
Не выводится список названий видеороликов в компоненте List из файла XML
Ошибка... AS3 + XML + flvPlayer + List
Монтажный кадр 1, слой "AS3", кадр 1, строка 47 1119: Обращение возможного неопределенного свойства COMPLETE через ссылку со статическим типом Class . Я новичок в этом деле. Не судите меня строго.... Спасибо за понимание. У меня почему-то не выводится список названий фильмов в List из XML??? AS3: import flash.net.URLLoader; import flash.net.URLRequest; import flash.events.Event; import flash.events.MouseEvent; import fl.video.FLVPlayback; var counter: uint = 0; var myxml: XML = new XML(); ////////////////////////////////// /* var flvPlayer: FLVPlayback = new FLVPlayback(); flvPlayer.skin = "SkinOverPlaySeekMute.swf"; flvPlayer.autoPlay = false; flvPlayer.skinAutoHide = true; addChild(flvPlayer);*/ ///////////////////////////////// var myLoader: URLLoader = new URLLoader(); myLoader.load(new URLRequest("xmls/videos_thems_animale.xml")); myLoader.addEventListener(Event.COMPLETE, loaded); function loaded (event: Event) { myxml = XML(event.target.data); //--------List----------// var i:uint; //i++; //list.addItem( { label: i+". " + myxml.video[counter].@title} ); for each ( var videos:XML in myxml.videos) { i++; //var wordTitle:String = videos.title.toString(); list.addItem( { label: i+". " + myxml.video[counter].@title} ); } var myArray = new Array (0,0); list.selectedIndices = myArray; //--------List----------// var videoIndex: Number = myxml.video.length()-1; trace(myxml, videoIndex); centerAlignAndPlay(); btn_left.addEventListener(MouseEvent.CLICK,prevVideo); btn_right.addEventListener(MouseEvent.CLICK,nextVideo); function prevVideo(event:MouseEvent) { if (counter>0) { counter--; centerAlignAndPlay(); } else { counter = 3; centerAlignAndPlay(); } } function nextVideo(event:MouseEvent) { if (counter<videoIndex) { counter++; centerAlignAndPlay(); } else { counter = 0; centerAlignAndPlay(); } } } function centerAlignAndPlay() { flvPlayer.source = myxml.video[counter].@movie; flvPlayer.width = myxml.video[counter].@width; flvPlayer.height = myxml.video[counter].@height; flvPlayer.x = 200; flvPlayer.y = 150; title.text = myxml.video[counter].@title; } XML: <?xml version="1.0" encoding="utf-8"?> <videos> <video movie="my_videos/thems/1. Zhivotnye/leopard.flv" width="500" height="281" title="Леопард"/> <video movie="my_videos/thems/1. Zhivotnye/tigr.flv" width="500" height="281" title="Тигр"/> <video movie="my_videos/thems/1. Zhivotnye/volk.flv" width="500" height="281" title="Волк"/> </videos> Последний раз редактировалось mariamarfi; 25.03.2014 в 14:47. |
|
|||||
Регистрация: Mar 2012
Сообщений: 61
|
//--------List----------// list.addEventListener(MouseEvent.CLICK, itemClick); function itemClick (event:Event):void { title2.text = event.target.selectedItem.label; videoToPlay = event.target.selectedItem.wordString; } flvPlayer.addEventListener(VideoEvent.COMPLETE, onCompletePlayback); function onCompletePlayback (event:Event):void { newVideo(); } function newVideo():void { if (list.selectedItem.videoNum == i) { flvPlayer.stop(); var selectFirst = new Array (0,0); list.selectedIndices = selectFirst; list.scrollToIndex(0); videoToPlay = list.selectedItem.wordString; } else { flvPlayer.stop(); var sn:uint = list.selectedItem.videoNum; var selectNext = new Array (sn,sn); list.selectedIndices = selectNext; list.scrollToIndex(sn); videoToPlay = list.selectedItem.wordString; } } for each ( var videos:XML in myxml..videos) { var i:uint; i++; var wordTitle:String = myxml.video[counter].@title.toString(); //list.addItem( { label: i+". " + videos.video[counter].@title} ); list.addItem( { label: i+ ". " + wordTitle, wordTitle: videos.video[counter].@title, songNum: i} ); } var myArray = new Array (0,0); list.selectedIndices = myArray; //--------List----------// В списке названий роликов выбрать определенный ролик и нажать на него, после этого выбранный ролик проигрывается. Найдите, пожалуйста, мои ошибки.... |
|
|||||
Регистрация: Jun 2013
Сообщений: 133
|
Цитата:
Добавьте импорт этого класса или напрямую обращайтесь к константе: Последний раз редактировалось Rivexe; 26.03.2014 в 13:09. |
|
|||||
Регистрация: Mar 2012
Сообщений: 61
|
Спасибо, исправила. Ролик проигрывается все нормально, а вот список не сработал... Почему?
Добавлено через 22 часа 22 минуты После того, как флэш запустился, первый ролик из списка List и из файла XML должен проигрываться. Кнопки перехода почему-то не соответствуют с item. Список List - с ним всё в порядке. Источник ролика и надписи меняются после нажатия на item. Но кнопки перехода сбиваются... =(( то есть неверно работают import flash.net.URLLoader; import flash.net.URLRequest; import flash.events.Event; import flash.events.MouseEvent; import fl.video.FLVPlayback; var i:uint; var counter: uint = 0; var myxml: XML = new XML(); var videoIndex: Number = myxml.video.length()-1; ////////////////////////////////// /* var flvPlayer: FLVPlayback = new FLVPlayback(); flvPlayer.skin = "SkinOverPlaySeekMute.swf"; flvPlayer.autoPlay = false; flvPlayer.skinAutoHide = true; addChild(flvPlayer);*/ ///////////////////////////////// var myLoader: URLLoader = new URLLoader(); myLoader.load(new URLRequest("xmls/videos_thems_animale.xml")); myLoader.addEventListener(Event.COMPLETE, loaded); function loaded (event: Event) { myxml = XML(event.target.data); VideoPlay(); //===== Список из файла XML в компонент List =====// for each ( var videos:XML in myxml.*) { i++; list.addItem( { label: i+". " +videos.@title} ); } var myArray = new Array (0,0); list.selectedIndices = myArray; //===== / Список из файла XML в компонент List =====// //===========List. Обработчик.============// //Изменение источника (видео и надпись) с помощью итема в листе, //а кнопки синие для перехода в след/предыд ролик list.addEventListener(Event.CHANGE, onIndexChangeHandler); // нужно подписать список на событие "после изменения выбора" //затем в обработчике события подставлять нужные данные function onIndexChangeHandler(e:Event):void { var index:int = e.target.selectedIndex flvPlayer.source = myxml.video[index].@movie; flvPlayer.width = myxml.video[index].@width; flvPlayer.height = myxml.video[index].@height; flvPlayer.x = 80; flvPlayer.y = 150; title.text = myxml.video[index].@title; } //а нажатие кнопки должно просто менять индекс /* btn_left.addEventListener(MouseEvent.CLICK,prevVideoItem); btn_right.addEventListener(MouseEvent.CLICK,nextVideoItem); function prevVideoItem(event:MouseEvent):void { if(list.selectedIndex>0) list.selectedIndex -=1; } function nextVideoItem(event:MouseEvent):void { list.selectedIndex +=1; }*/ btn_left.addEventListener(MouseEvent.CLICK,prevVideo); btn_right.addEventListener(MouseEvent.CLICK,nextVideo); function prevVideo(event:MouseEvent):void { if ((list.selectedIndex >0) && (counter > 0)) { list.selectedIndex = counter -=1; VideoPlay(); } else { counter = 3; VideoPlay(); } } function nextVideo(event:MouseEvent):void { if ((list.selectedIndex < videoIndex) && (counter < videoIndex)) { list.selectedIndex = counter +=1; VideoPlay(); } else { list.selectedIndex = counter = 0; VideoPlay(); } } //===========/ List============// } function VideoPlay() { flvPlayer.source = myxml.video[counter].@movie; flvPlayer.width = myxml.video[counter].@width; flvPlayer.height = myxml.video[counter].@height; flvPlayer.x = 80; flvPlayer.y = 150; title.text = myxml.video[counter].@title; } |
Часовой пояс GMT +4, время: 03:45. |
|
« Предыдущая тема | Следующая тема » |
Теги |
FLVPlayer , list , xml |
|
|