Показать сообщение отдельно
Старый 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;
}