Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как добавить данные из XML в List и ComboBox (http://www.flasher.ru/forum/showthread.php?t=208571)

mariamarfi 29.07.2014 22:10

Как добавить данные из XML в List и ComboBox
 
Добрый вечер, форумчане! Как отобразить список данных из XML в List и ComboBox?

Список названия тем отображается в ComboBox, а список слов после выбора определенной темы в List.

Код 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 myLoader: URLLoader = new URLLoader();
 
myLoader.load(new URLRequest("xmls/list_themes_words.xml"));
 
        myLoader.addEventListener(Event.COMPLETE, loaded);
 
        function loaded (event: Event)
        {
                myxml = XML(event.target.data);
 
                for each ( var Themes:XML in myxml.*)
                {
                  i++;
                  list.addItem( { label: i+". " +Themes.@videoTitle} );
                }
 
                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].@videoFile;
                //flvPlayer.x = ;
                //flvPlayer.y = ;
                title.text = myxml.video[counter].@videoTitle;
        }

Код:

<?xml version="1.0" encoding="utf-8"?>
<XML>
        <Themes>
                <theme themeTitle="Адмирал, флот">
                        <videoWord videoTitle="Адмирал" videoFile="admiral.flv" />
                        <videoWord videoTitle="Армия" videoFile="armiya.flv" />
                        <videoWord videoTitle="Атака" videoFile="ataka.flv" />
                </theme>
                <theme themeTitle="Птицы">
                        <videoWord videoTitle="Воробей" videoFile="vorobey.flv" />
                        <videoWord videoTitle="Грач" videoFile="grach.flv" />
                </theme>
                </Themes>
</XML>


Koopa 29.07.2014 22:13

ммм, а к переменной слушатель можно подвесить?

mariamarfi 30.07.2014 11:52

Я новичок в этом деле. Прошу, не судите меня строго. Я просто пробую всевозможные варианты для себя, а не для какого-то проекта. Смотрела в справочниках, для меня там мало примеров, лишь основные... К сожалению, нет , как по мне, нормальные примеры, чтобы можно в дальнейшем самостоятельно проще развиваться. Тут нет речи о стадии.
У меня выдавались ошибки, поэтому я решила вам обратиться. Я не программист.

LifeIsRhythm 30.07.2014 13:20

Цитата:

Вот интересно, вы будете каждый взятый на фрилансе проект обсуждать здесь?
А у Вас какое-то место чешется? Какое Вам до этого дело?

alexandrratush 30.07.2014 14:05

Я смотрю тут много собралось народа помочь.
Вот набросал вам пример как примерно все должно быть, разбирайтесь.

Код AS3:

import flash.events.Event;
 
var myLoader: URLLoader = new URLLoader();
myLoader.load(new URLRequest("xmls/list_themes_words.xml"));
myLoader.addEventListener(Event.COMPLETE, loaded);
 
function loaded (event: Event)
{
        var myxml:XML = XML(event.target.data);
 
        var item:XML;
        var name:String;
        var data:XMLList;
        for each (item in myxml.Themes.theme)
        {
                name = item.@themeTitle;
                data = item.videoWord;
 
                comboBox.addItem({label: name, data:data});
        }
 
        comboBox.addEventListener(Event.CHANGE, changeCB);
}
 
function changeCB(e:Event):void
{
        var data:XMLList = comboBox.selectedItem.data;
 
        list.removeAll();
 
        var item:XML;
        var name:String;
        var url:String;
        for each (item in data)
        {
                name = item.@videoTitle;
                url = item.@videoFile;
 
                list.addItem({label: name, data: url});
        }
 
        list.addEventListener(Event.CHANGE, changeList);
}
 
function changeList(e:Event):void
{
        trace(list.selectedItem.data);
}


Koopa 30.07.2014 17:48

Цитата:

Сообщение от LifeIsRhythm (Сообщение 1169834)
А у Вас какое-то место чешется? Какое Вам до этого дело?

А ТЫ считаешь что получать готовое решение и за это получать деньги, не прилагая усилий -нормально?
МЫ НЕ РАБЫ!РАБЫ НЕ МЫ!

LifeIsRhythm 30.07.2014 18:22

Цитата:

Я смотрю тут много собралось народа помочь.
Мне очень стыдно, что я не ответил, но у меня сейчас под рукой idе, чтобы проверить,
а без проверки я не могу, так-как не плохо знаю нативные компоненты. И чтобы не переносить
раздел флейм сюда, я не буду объяснять почему я ответил.

Цитата:

А ТЫ считаешь что получать готовое решение и за это получать деньги, не прилагая усилий -нормально?
А у Вы можете подтвердить то, что на фрилансе действительно было подобное предложение и что именно ТС
получила на него заказ? Или слова крикнувшего сделали свое дело и Вы повелись?

А если это и правда, то Вам какое дело? Если Вы возьмете заказ и столкнетесь с чем-то, о чем и не догадывались,
то что?
Мне этот поступок, навивает кадры из кино ( не помню название ), когда там маленький дедок говорил "я знаю, я знаю".
Вот мне кажется, что SuriTheAngel, так сказал, только по тому, что знал..

И жаль нет цитаты знаменитого человека, но чем слабее и глупее человек, тем он более жесток-груб-нахальней.

dimarik 31.07.2014 10:34

Первое китайское предупреждение всем участникам этой душевной беседы.

mariamarfi 31.07.2014 19:34

Спасибо Вам, alexandrratush. Разобралась.


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

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