Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как выдерать текст из DynamicText и вставлять в ListBox (http://www.flasher.ru/forum/showthread.php?t=119861)

Azo 03.01.2009 23:57

Как выдерать текст из DynamicText и вставлять в ListBox
 
Есть DynamicText с именем 'pole' (обычный Динамический текст)
Есть ListBox с именем 'ListBox1'

Изначально в DynamicText существует следующий текст
(он загружен из PHP с музыкального сайта) :

Код:

                <track>
                        <annotation>1. muzika_1.mp3</annotation>
                        <location>mp3/muzika_1.mp3</location>
                        <info></info>
                </track>
                <track>
                        <annotation>2. Super_muzika_2.mp3</annotation>
                        <location>mp3/Super_muzika_2.mp3</location>
                        <info></info>
                </track>
                <track>
                        <annotation>3. Madonna_1.mp3</annotation>
                        <location>mp3/Madonna_1.mp3</location>
                        <info></info>
                </track>

.... и т.д.

-----------------------------
Наша задача скопировать строчки которые находятся между <location> и </location> добавляя их в ListBox

Код AS3:

ListBox1.addItem(stroka_1);
....
ListBox1.addItem(stroka_n);

В общем чтобы в ListBox наблюдалось что то типа:

Код:

muzika_1.mp3
Super_muzika_2.mp3
Madonna_1.mp3


PS: Поиск в тексте я нащел! Спасибо Жень Шень
Поиск по DynamicText
Но вот как скопировать определенную строчку из текста в ЛистБокс?((((
Очень надеюсь на ваш ответ! :rolleyes:

amexdesign 04.01.2009 03:06

Код AS1/AS2:

          <track>
                        <annotation>1. muzika_1.mp3</annotation>
                        <location>mp3/muzika_1.mp3</location>
                        <info></info>
                </track>
                <track>
                        <annotation>2. Super_muzika_2.mp3</annotation>
                        <location>mp3/Super_muzika_2.mp3</location>
                        <info></info>
                </track>
                <track>
                        <annotation>3. Madonna_1.mp3</annotation>
                        <location>mp3/Madonna_1.mp3</location>
                        <info></info>
                </track>
 
.... и т.д.

данный код имеет структуру XML. непоннятно, зачем загружать его сначало в динамический текст, если можно этот файл грузить как XML на _root фильма и передовать вариабле из узлов напрямую в ЛистБокс?
пологаю, что ЛистБокс - это компонент, лежащий на рабочем столе?

dimarik 04.01.2009 15:20

Реальные пацаны не ищут легких путей! Правда, Azo? =)

Код AS1/AS2:

var ListBox1:        ListBox;
 
var doc:XML = new XML();
doc.ignoreWhite = true;
doc.parseXML(pole.text);
 
var node:        XMLNode;
var subnode:        XMLNode;
while (node = doc.firstChild) {
        while(subnode = node.firstChild) {
                if (subnode.nodeName == 'location') {
                        ListBox1.addItem(subnode.nodeValue);
                }
                subnode.removeNode();
        }
        node.removeNode();
}


Azo 04.01.2009 16:28

dimarik, xDDDDDDDDDDD

Добавлено через 5 часов 5 минут
Ладно, тогда если без динамического текста..
Как загрузить php файл, (который со структурой xml) во Flash
Код:

         
<?xml version='1.0' encoding='UTF-8' ?>
<playlist version='1' xmlns='http://xspf.org/ns/0/'>
        <title>Sample PHP Generated Playlist</title>
        <info>http://www.jeroenwijering.com/</info>
        <trackList>

<track>
                        <annotation>1. muzika_1.mp3</annotation>
                        <location>mp3/muzika_1.mp3</location>
                        <info></info>
                </track>
                <track>
                        <annotation>2. Super_muzika_2.mp3</annotation>
                        <location>mp3/Super_muzika_2.mp3</location>
                        <info></info>
                </track>
                <track>
                        <annotation>3. Madonna_1.mp3</annotation>
                        <location>mp3/Madonna_1.mp3</location>
                        <info></info>
                </track>
 
.... и т.д.

причем добавляя каждые строчки, которые между <location> и </location> в наш ListBox...

PS dimarik Твой код не работает(

трас выводит:
Код:

interface 'ListBox' could not be loaded.
    var ListBox1:        ListBox;


amexdesign 05.01.2009 06:31

Вложений: 1
Цитата:

причем добавляя каждые строчки, которые между <location> и </location> в наш ListBox...
в этом случае вы грузите линк к музыке, лучше грузить в ListBox то, что стоит между <annotation> и </annotation>, т.е. названия, а затем при нажатии грузить сам музон, примерно вот так

dimarik 05.01.2009 15:32

Цитата:

Сообщение от Azo (Сообщение 788044)
dimarik Твой код не работает(

трас выводит:
Код:

interface 'ListBox' could not be loaded.
    var ListBox1:        ListBox;


Да, ошибся, тип должен быть List. Смутило Ваше название экземпляра компонента (ListBox1). Конечно, исправьте на
Код AS1/AS2:

import fl.controls.List;
 
var ListBox1:        List;

И проследите за тем, чтобы компонент List находился на сцене перед исполнением данного куска кода.

Кстати, что это за практика, называть экземпляры с заглавной буквы? Вы от этого избавляйтесь скорее.

Добавлено через 27 минут
amexdesign, в Вашем примере неявно вызывается метод _root.parseXML из области видимости объекта XML, который в свою очередь имеет такой же метод. Простой вызов parseXML() в теле обработчика XML.onLoad без указания области видимости может запутать вашего коллегу, либо Вас самих через пару месяцев. С этим нужно быть аккуратнее. Используйте self-reference переменную в подобных случаях. А еще лучше - выбирайте имя метода, отличное от нативного.

Azo 05.01.2009 17:02

Спасибо доюрые люди за помощь!
Кстати, знаете почему я вначале хотел чтобы сначало xml загружался в Текст?
Да потому что без этого он (Флешка) зависает на долго! файл php(xml) то большой ой ой ой...
Код:

a script in this movie is causing Flash Player to run slowly... abort the script?...

dimarik 05.01.2009 22:02

Соболезную =)


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

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