Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.03.2014, 12:29
mariamarfi вне форума Посмотреть профиль Отправить личное сообщение для mariamarfi Найти все сообщения от mariamarfi
  № 1  
Ответить с цитированием
mariamarfi

Регистрация: Mar 2012
Сообщений: 61
По умолчанию Не выводится список названий видеороликов в компоненте List из файла XML

Ошибка... AS3 + XML + flvPlayer + List

Монтажный кадр 1, слой "AS3", кадр 1, строка 47 1119: Обращение возможного неопределенного свойства COMPLETE через ссылку со статическим типом Class .

Я новичок в этом деле. Не судите меня строго.... Спасибо за понимание.


У меня почему-то не выводится список названий фильмов в List из XML???


AS3:
Код 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>
Вложения
Тип файла: rar demo&List.rar (7.10 Мб, 75 просмотров)


Последний раз редактировалось mariamarfi; 25.03.2014 в 14:47.
Старый 25.03.2014, 12:39
mariamarfi вне форума Посмотреть профиль Отправить личное сообщение для mariamarfi Найти все сообщения от mariamarfi
  № 2  
Ответить с цитированием
mariamarfi

Регистрация: Mar 2012
Сообщений: 61
Код AS3:
//--------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----------//
Это я пыталась переделывать на основе примера "Список музыки". Но у меня не получалось... =(((

В списке названий роликов выбрать определенный ролик и нажать на него, после этого выбранный ролик проигрывается.

Найдите, пожалуйста, мои ошибки....

Старый 25.03.2014, 23:57
Rivexe вне форума Посмотреть профиль Отправить личное сообщение для Rivexe Найти все сообщения от Rivexe
  № 3  
Ответить с цитированием
Rivexe
 
Аватар для Rivexe

Регистрация: Jun 2013
Сообщений: 133
Цитата:
Сообщение от mariamarfi Посмотреть сообщение
Монтажный кадр 1, слой "AS3", кадр 1, строка 47 1119: Обращение возможного неопределенного свойства COMPLETE через ссылку со статическим типом Class .
В коде нет импорта класса fl.video.VideoEvent в котором объявлена константа COMPLETE.
Добавьте импорт этого класса или напрямую обращайтесь к константе:
Код AS3:
flvPlayer.addEventListener(fl.video.VideoEvent.COMPLETE, onCompletePlayback);


Последний раз редактировалось Rivexe; 26.03.2014 в 13:09.
Старый 26.03.2014, 23:14
mariamarfi вне форума Посмотреть профиль Отправить личное сообщение для mariamarfi Найти все сообщения от mariamarfi
  № 4  
Ответить с цитированием
mariamarfi

Регистрация: Mar 2012
Сообщений: 61
Спасибо, исправила. Ролик проигрывается все нормально, а вот список не сработал... Почему?

Добавлено через 22 часа 22 минуты
После того, как флэш запустился, первый ролик из списка List и из файла XML должен проигрываться.
Кнопки перехода почему-то не соответствуют с item. Список List - с ним всё в порядке. Источник ролика и надписи меняются после нажатия на item. Но кнопки перехода сбиваются... =(( то есть неверно работают

Код AS3:
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, время: 13:59.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
FLVPlayer , list , xml
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 13:59.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.