Začínáme s Flash MX 2004 – 19. díl – RSS čtečka

Většina zpravodajských serverů dnes nabízí v xml formátu výpis aktuálních článků. Z předchozích dílů již umíme pracovat z XMl dokumenty, proč tedy nevyužít tyto znalosti a nevytvořit si vlastní čtečku těchto kanálů.

RSS čtečka

Nástroje, pro čtení RSS kanálů dnes najdeme téměř všude. Některé jsou dokonce i placené, ale my si dnes ukážeme, že i ve Flashi můžeme vytvořit plnohodnotnou RSS čtečku velice snadno, především díky tomu, že pro XML dokumenty RSS kanálů platí jasná pravidla, která přesně definují strukturu a význam jednotlivých elementů XML dokumentu.

Dnes si vytvoříme velmi jednoduchý nástroj, který zpracuje několik základních elementů XML dokumentu. Víme, že v XML dokumentu je článek ohraničen elementem „item“, který obsahuje několik dalších subelementů, ze kterých nás dnes bude zajímat: „title“ – název článku, „description“ – stručný obsah článku a „link“ – odkaz na článek.

Zpracování XML dokumentu

Vytvoříme si funkci, která načte z dané adresy xml soubor. Po načtení se musíme dostat „skrz“ první dva elementy „rss“ a „channel“. Všechny elementy, které obsahují potřebná data načteme do pole „nodeArray“.

Abychom vybrali elementy pojmenované „item“ projdeme celé pole a pokud najdeme příslušný element, zjistíme z tagů „title“, „description“ a „link“ potřebné údaje, které vložíme do polí „clanekNazev“, „clanekSouhrn“, „clanekUrl“ a do budoucího seznamu všech článků, který bude uložen v komponentě, pojmenované „seznam“.

Do prvního snímku vložíme následující kód:

System.useCodepage = true;
rssData = new XML();
rssData.ignoreWhite = true;
rssLoad = function (url) {
  rssData.load(url);
//načtení  dat
  rssData.onLoad = function() {
//vložení elementů do pole
    nodeArray = rssData.firstChild.firstChild.childNodes;
    clanekNazev = new Array();
    clanekSouhrn = new Array();
    clanekUrl = new Array();
    xx = 0;
    dx = 0;
//projdeme pole
    do {
      nodeNm = nodeArray[xx].nodeName;
      if (nodeNm == "item") {
        itemArray = nodeArray[xx].childNodes;
        x = 0;
        do {
//z elementu item získáme potřebná data
          if (itemArray[x].nodeName == "title") {
            clanekNazev.push(itemArray[x].firstChild.nodeValue);
    // vložíme do komponenty „seznam“   názvy článků      seznam.addItem(itemArray[x].firstChild.nodeValue, [dx]);
            dx++;
          } else if (itemArray[x].nodeName == "description") {
            clanekSouhrn.push(itemArray[x].firstChild.nodeValue);
          } else if (itemArray[x].nodeName == "link") {
            clanekUrl.push(itemArray[x].firstChild.nodeValue);
          }
          x++;
        } while (x<itemArray.length);
      }
      xx++;
    } while (xx<nodeArray.length);
  };
};

Další objekty čtečky

Máme připravenou funkci, které budeme předávat proměnnou url, díky které funkce načte XML dokument ze serveru.

Na scénu vložíme textové pole, které bude typu „input“, tedy pole pro zadávání url adresy. Pole pojmenujeme „rssurl“.

Klepněte pro větší obrázek

Dále si vytvoříme libovolné tlačítko, které umístíme vedle vstupního textového pole. Tlačítku přiřadíme následující akci:

on (release) {
  rssLoad(rssurl.text);
}

Po kliknutí se provede funkce, která načte data z určené adresy.

Aby se data zobrazila, musíme na scénu vložit dvě komponenty. Seznam komponent najdeme pod menu „Windows – Development Panels – Components“. Ze seznamu na scénu přetáhneme komponentu s názvem „List“. Komponentu zvětšíme na celou šířku scény a na panelu vlastností ji pojmenujeme „seznam“.

Klepněte pro větší obrázek

Na panelu akcí přiřadíme komponentě tento skript:

on (change) {
  datas = this.selectedItem;
  cislo = datas.data;
  this._parent.vyber.text = this._parent.clanekNazev[cislo]+newline+newline+this._parent.clanekSouhrn[cislo];
}

Ten vloží do další textové komponenty název a popis článku. Přitom si zapamatujeme číslo článku, pod kterým je veden v pomocných polích. Toto číslo využijeme pro získání odkazu na originální článek.

Pro zobrazení názvu a popisu článku použijeme komponentu „TextArea“. Vložíme ji na scénu a pojmenujeme ji „vyber“.

Klepněte pro větší obrázek

Pokud budeme chtít zobrazit originální článek, vložíme na scénu tlačítko, kterému přiřadíme tento skript:

on (release) {
  getURL(clanekUrl[seznam.cislo], "_blank");
}

Po kliknutí na tlačítko se zobrazí požadovaný článek.

Vytvořili jsme si velmi jednoduchou čtečku libovolného rss kanálu. Pokud ji ovšem umístíme na web, nebude díky bezpečnostním opatřením načítat externí dokumenty. V příštím díle si s tímto problémem snadno poradíme a dále si čtečku doplníme o několik funkcí, které nám umožní lépe zobrazit veškerá data, která nám formát zdrojového souboru poskytuje.

Zdrojový soubor dnešní ukázka si můžete stáhnout zde, ukázka.

Diskuze (6) Další článek: Ke stažení: novinky od Mozilly

Témata článku: Software, Programování, RSS, Flash, Čtečka, Pole, Celé pole, Textové pole, Item, Díl, Originální díl, Element


Určitě si přečtěte

Internet poslední naděje. Kdo má nejlepší tarif „LTE na doma“?

Internet poslední naděje. Kdo má nejlepší tarif „LTE na doma“?

** Srovnali jsme fixní LTE připojení od tuzemských operátorů ** Liší se rychlostmi, cenou i podmínkami ** Na co všechno dát pozor?

Lukáš Václavík | 27

Zapomeňte na kometu, české nebe každý den křižují mnohem zajímavější kousky

Zapomeňte na kometu, české nebe každý den křižují mnohem zajímavější kousky

** České nebe každý den křižuje hromada exotických letounů ** Na populární mapě Flightradar24 je ale nenajdete ** Jsou to vojenské letouny USA, UK a NATO

Jakub Čížek | 39

Epic chce rozbít monopol Play Storu a App Storu. Nastražil trik s hrou Fortnite a žaluje Google i Apple

Epic chce rozbít monopol Play Storu a App Storu. Nastražil trik s hrou Fortnite a žaluje Google i Apple

** Apple a Google odstranili z obchodů s aplikacemi hru Fortnite ** Její vývojáři nejprve přichystali parodické video ** V žalobách viní obě firmy z monopolního chování

Karel Kilián | 134

Šmírování kamerami Googlu: Koukněte, co šíleného se objevilo na Street View

Šmírování kamerami Googlu: Koukněte, co šíleného se objevilo na Street View

Google stále fotí celý svět do své služby Street View. A novodobou zábavou je hledat v mapách Googlu vtipné záběry. Podívejte se na výběr nejlepších!

redakce | 4


Aktuální číslo časopisu Computer

Megatest mobilů do 8 000 Kč

Test bezdrátových headsetů

Linux i pro začátečníky

Jak surfovat anonymně