SWiSH Forum
Forum użytkowników programów SWiSH

SWiSH Max - Swish + prosty XML

vinyldrug - Pon 04 Kwi, 2011 22:55
Temat postu: Swish + prosty XML
witam serdecznie, Chciałbym w prezentacji swf zrobić prostą rzecz z xml.

mianowicie chciałbym do dynamicznego pola tekstowego w prezentacji wczytać ciąg znaków (text) który jest zapisany w pliku xml.

bardzo proszę o pomoc zdaję sobie sprawę, że to pewnie banalne ale ja w xml i actionscript jestem totalnie zielony. z góry dziękuję za pomoc

shastaan - Wto 05 Kwi, 2011 09:26

No ja rozumiem, że zielony i w ogóle ale takiego wstydu sobie narobić na samym początku? :D

Czytałeś chociaż regulamin? Bo FAQ na pewno nie bo to w FAQ jest opisane :P
http://swish.wodip.opole....topic.php?t=503

vinyldrug - Wto 05 Kwi, 2011 10:38

aż tak zielony nie jestem :) wiem jak wczytać txt. Mi natomiast chodzi o XML kolego :) nie o plik tekstowy
shastaan - Wto 05 Kwi, 2011 15:13

Dokładnie tak samo.
Musisz tylko loadVariables odnieść do pliku xml zamiast txt. :]

vinyldrug - Wto 05 Kwi, 2011 15:24

a czy jest jakiś skrypt który zanim wyświetli treść zaciągniętą z xml spowoduje najpierw jego załadowanie? wiem że są takie komendy w adobe flash ale w swishu inaczej to chyba wygląda... chodzi o to że zdarzało się tak że dane pole textowe wyświetlało się w prezentacji puste ponieważ jeszcze xml nie był w całości załadowany albo zamulił
shastaan - Wto 05 Kwi, 2011 15:30

Nie wydaje mi się by był jakiś odgórny algorytm na to :]
Nie, żebym to sprawdzał, ale w zupełności powinno wystarczyć wczytanie zmiennych z xml kilka klatek wcześniej niż wyświetlenie obiektu "dynamic text", który ma te zmienne wyświetlić.

vinyldrug - Wto 05 Kwi, 2011 15:54

ok stestuje i dam znać o rezultatach
eden - Wto 05 Kwi, 2011 17:04

Coś mi sie wydaje, że chodzi Wam o to.

Kod:
onFrame (1) {
    wczytaj();
}
function wczytaj() {
 
  x = new XML();
  x.ignoreWhite = true;
  x.load("plik.xml");
  x.onLoad = function(success) {
            if (success) { 
                   mojTekst = _parent.x.firstChild.childNodes[0].childNodes[0].childNodes[0].nodeValue;
              _parent.wyswietlTekst(mojTekst);
                   
            } else {
            // xml nie został wczytany
              mojTekst = "Komunikat o błedzie";
                 _parent.wyswietlTekst(mojTekst);
        }
       };
       
}
function wyswietlTekst(Tekst) {
   
   createTextField("mojePole", 2 , 0 , 1 , areaWidth , 1 );
   mojePole.autoSize = true;
   mojePole.text = Tekst;
   
}



Struktura pliku xml o naziw plik.xml
Cytat:
<?xml version="1.0" encoding="utf-8"?>
<database>
<content>
<item>To jest tekst z pliku xml</item>
</content>
</database>


To najprostrzy przykład jaki można podać.

Januszr - Wto 05 Kwi, 2011 17:45

O xml było tutaj
http://swish.wodip.opole....ighlight=waluty
może przyda się?

vinyldrug - Sro 06 Kwi, 2011 00:01

[quote="eden"]Coś mi sie wydaje, że chodzi Wam o to.

Kod:
onFrame (1) {
    wczytaj();
}
function wczytaj() {
 
  x = new XML();
  x.ignoreWhite = true;
  x.load("plik.xml");
  x.onLoad = function(success) {
            if (success) { 
                   mojTekst = _parent.x.firstChild.childNodes[0].childNodes[0].childNodes[0].nodeValue;
              _parent.wyswietlTekst(mojTekst);
                   
            } else {
            // xml nie został wczytany
              mojTekst = "Komunikat o błedzie";
                 _parent.wyswietlTekst(mojTekst);
        }
       };
       
}
function wyswietlTekst(Tekst) {
   
   createTextField("mojePole", 2 , 0 , 1 , areaWidth , 1 );
   mojePole.autoSize = true;
   mojePole.text = Tekst;
   
}



dokładnie kolego jednak chciałbym aby ten text ładował sie w konkretnym polu textowym dynamicznym :)

Podpowiedziałbyś mi kolego jak przerobić ten text aby treść wyświetlała się w texcie dynamicznym?

mielu - Sro 06 Kwi, 2011 11:06

o xml jest na forum już dużo, wystarczy poszukać
vinyldrug - Sro 06 Kwi, 2011 13:07

nie znalazłem nigdzie przykładu na forum jakim poleceniem przywołać treść XML do dynamic text
mielu - Sro 06 Kwi, 2011 17:49

Podaj strukturę xml, bo tak to możemy sobie gdybać.
vinyldrug - Czw 07 Kwi, 2011 15:04

Kod:
<info>

<info1>Nadchodzi Nowe</info1>
<info2>W twoimi Mieście</info2>
<info3>Bądź czujny</info3>

</info>


chciałby aby każde info pojawiało się w 3 innych polach dyniamic text

eden - Czw 07 Kwi, 2011 16:32

Ta struktura xml jest troche bezsensu. W każdym razie.

Kod:
onFrame (1) {
    wczytaj();
}
function wczytaj() {
 
  mojeDane = new Array();
  x = new XML();
  x.ignoreWhite = true;
  x.load("plik.xml");
  x.onLoad = function(success) {
            if (success) {
                 
                 xml_length = _parent.x.firstChild.childNodes.length;
                 for(i=0 ; i<xml_length ; i++) {
                 
                    _parent.mojeDane.push(_parent.x.firstChild.childNodes[i].childNodes[0].nodeValue);
                   
                 }
              _parent.wyswietlTekst();
                   
            } else {
            // xml nie został wczytany
        }
       };
       
}
function wyswietlTekst() {
 
   mojePole1.text = mojeDane[0];
   mojePole2.text = mojeDane[1];
   mojePole3.text = mojeDane[2];
   
}

mielu - Czw 07 Kwi, 2011 17:07

Cytat:
Ta struktura xml jest troche bezsensu.

zgadzam się w 100%,
vinyldrug po co xml

vinyldrug - Czw 07 Kwi, 2011 18:03

Dla czego tak Panowie uważają? :) prosze pisać może nauczę się czegoś nowego :)
mielu - Czw 07 Kwi, 2011 19:18

Ja uważam, że tak mało rozbudowany xml nie ma sensu. Można to zastąpić po prostu plikiem txt, chyba że xml jest generowany przez jakąś aplikację.
vinyldrug - Czw 07 Kwi, 2011 19:45

no właśnie. docelowo xml będzie generowany przez jeszcze coś innego :) W każdym bądź razie bardzo dziękuje Wam za pomoc, jestem bardzo wdzięczny pozdrawiam serdecznie :)

[ Dodano: Czw 07 Kwi, 2011 21:25 ]
mam jeszcze takie pytanie. Ta prezentacja swf będzie ładowana do ducha i mam tu prbolem natury takiej że po załadowaniu do ducha nie wyświetlają mi się te pola dynamic texst. Domyślam się że trzeba gdzies zmienić ścieżki tylko nie bardzo wiem gdzie. Mój duch nazywa się po prostu "duch". Może jakaś podpowiedź?

pozdrawiam


Powered by phpBB modified by Przemo © 2003 phpBB Group