Flash a externé domény

Získavať dáta do Flashu z externej domény nie je vôbec jednoduché, teda nebolo. Všetko sa to dá dosiahnuť pomocou súboru crossdomain.xml. Funguje to tak, že flash movie, ktoré si vyžiada informácie z externej domény najprv hľadá tzv. bezpečnostný súbor, ktorý je na nej uložený. Tento súbor musí mať názov crossdomain.xml.

Povedzme, že chcete novinky v súbore xyz.xml na jednej z vašich stránok distribuovať na ďalšie, bez toho aby ste museli súbor xyz.xml prácne uploadovať na všetky vaše stránky jednotlivo. S bezpečnostným vylepšením to nie je možné, pokiaľ nemáte súbor crossdomain.xml.

Takže aký je kód tohto súboru? Veľmi jednoduchý a vyzerá takto:



 
 
 

Pričom uvedené domény sú domény, ktoré cez Flash potrebujú stiahnuť informácie zo súboru xyz.xml. Pričom sú použité možnosti, aby stiahnutie fungovalo aj bez zadania www.

Ak sa nechcete hrať s názvami domén, jednoducho uveďte nasledujúci kód a váš súbor bude dostupný pre všetky domény a IP adresy.




Dôležitou súčasťou je však aj kód, ktorý budete musieť vložiť vo forme actionscriptu do vášho flash súboru, tento má tvar:

System.security.loadPolicyFile(„http://mojadomena.sk/sub/dir/crossdomain.xml“);

Táto metóda však funguje iba pre Flash player 7.0.14.0. a novšie.

Toto som sa dozvedel, keď som pátral po kóde, ktorý by umož?oval presne to čo som tu opísal, nakoľko čoskoro spustím cez www.skiinfo.sk zaujímavú vecičku.

Fanatici môžu vyskúšať aj link, ktorý to opisuje veľmi detailne s rôznymi obmenami.

Web: Adobe/Flash Player TechNote

13 Comments on “Flash a externé domény

  1. Pingback: vybrali.sme.sk

  2. Dobry den,
    to co ste tu rozobrali velmi potrebujem no v actionscripte mi hadze error pri kompilacii toho prikazu a link uvedeny pre fanatikov je uz nefunkcny, mohli by ste uviest pripadne novy link alebo to trosku viac rozobrat prosim.
    Dakujem

  3. Zdravim,
    Link som updateoval, dufam, ze to pomoze (dakujem za upozornenie). Neviem presne v com mate problem, uvedeny link hadam pomoze. Ak by nepomohol, tak skuste v google zadat „crossdomain“ a urcite na nieco natrafite. Este uvadzam kompletny kod v actionscripte, aky pouzivam ja:

    xmlData = new XML();
    xmlData.ignoreWhite = true;
    xmlData.onLoad = loadXML;
    xmlData.load(„http://www.aaa.sk/abc/cde.xml“);
    System.security.loadPolicyFile(„http://www.aaa.sk/crossdomain.xml“);

    A dolezite je tiez aby crossdomain.xml bol na servery, z ktoreho chcete nacitat data, nie na tom kde je flash movie.

  4. problem mam asi taky, ze mam stranku na ktorej mam flashove videa ale mam malo miesta na serveri a potrebujem aby sa flashove video nacitalo z ineho servera a objavilo na stranke

    v tomto pripade sa video krasne zobrazi, pretoze video je ulozene na aktualnom serveri z ktoreho sa nacitava video…

    AC_FL_RunContent = 0;

    if (AC_FL_RunContent == 0) {
    alert(\“Táto stránka vyžaduje AC_RunActiveContent.js.\“);
    } else {
    AC_FL_RunContent(
    ‚codebase‘, ‚http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0‘,
    ‚width‘, ‚400‘,
    ‚height‘, ‚350‘,
    ‚src‘, ‚Video/marek svedsko 1/marek svedsko 1‘,
    ‚quality‘, ‚high‘,
    ‚pluginspage‘, ‚http://www.macromedia.com/go/getflashplayer‘,
    ‚align‘, ‚top‘,
    ‚play‘, ‚true‘,
    ‚loop‘, ‚true‘,
    ‚scale‘, ‚showall‘,
    ‚wmode‘, ‚window‘,
    ‚devicefont‘, ‚false‘,
    ‚id‘, ‚marek svedsko 1‘,
    ‚bgcolor‘, ‚#f7fbf3‘,
    ‚name‘, ‚Video/marek svedsko 1/marek svedsko 1‘,
    ‚menu‘, ‚true‘,
    ‚allowFullScreen‘, ‚true‘,
    ‚allowScriptAccess‘,’sameDomain‘,
    ‚movie‘, ‚Video/marek svedsko 1/marek svedsko 1‘,
    ‚salign‘, “
    ); //end AC code
    }

    a v tomto pripade potrebujem nacitat video z ineho servera ale neviem ako mam zadat tie cesty aby to fungovalo, pripadne ci tam je vobec ten subor crossdomain.xml potrebny…

    AC_FL_RunContent = 0;

    if (AC_FL_RunContent == 0) {
    alert(\“Táto stránka vyžaduje AC_RunActiveContent.js.\“);
    } else {
    AC_FL_RunContent(
    ‚codebase‘, ‚http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0‘,
    ‚width‘, ‚400‘,
    ‚height‘, ‚350‘,
    ‚src‘, ‚http://www.mafiavidea.hostuju.cz/Habura 2007 I/Habura 2007 I‘,
    ‚quality‘, ‚high‘,
    ‚pluginspage‘, ‚http://www.macromedia.com/go/getflashplayer‘,
    ‚align‘, ‚top‘,
    ‚play‘, ‚true‘,
    ‚loop‘, ‚true‘,
    ‚scale‘, ‚showall‘,
    ‚wmode‘, ‚window‘,
    ‚devicefont‘, ‚false‘,
    ‚id‘, ‚http://www.mafiavidea.hostuju.cz/Habura 2007 I/Habura 2007 I‘,
    ‚bgcolor‘, ‚#f7fbf3‘,
    ‚name‘, ‚http://www.mafiavidea.hostuju.cz/Habura 2007 I/Habura 2007 I‘,
    ‚menu‘, ‚true‘,
    ‚allowFullScreen‘, ‚true‘,
    ‚allowScriptAccess‘,’sameDomain‘,
    ‚movie‘, ‚http://www.mafiavidea.hostuju.cz/Habura 2007 I/Habura 2007 I‘,
    ‚salign‘, “
    ); //end AC code
    }

    pouizvam free hosting na xf.cz mozno je problem v tom ze nepovoluju nacitavat udaje z externej adresy ale ci take obmedzenie vobec existuje to netusim a neviem ani ako tomu zabranit, lebo som si vsimol ze na mnohych strankach su umiestnene flashove videa z portalov youtube a googlevideo a daju sa na tych istych strankach aj prehrat a ja potrebujem presne to iste…

    Dakujem za kazdu radu

  5. problem mam asi taky, ze mam stranku na ktorej mam flashove videa ale mam malo miesta na serveri a potrebujem aby sa flashove video nacitalo z ineho servera a objavilo na stranke

    v tomto pripade sa video krasne zobrazi, pretoze video je ulozene na aktualnom serveri z ktoreho sa nacitava video…
    !KF¢{^

    a v tomto pripade potrebujem nacitat video z ineho servera ale neviem ako mam zadat tie cesty aby to fungovalo, pripadne ci tam je vobec ten subor crossdomain.xml potrebny…
    !KF¢{^

    pouizvam free hosting na xf.cz mozno je problem v tom ze nepovoluju nacitavat udaje z externej adresy ale ci take obmedzenie vobec existuje to netusim a neviem ani ako tomu zabranit, lebo som si vsimol ze na mnohych strankach su umiestnene flashove videa z portalov youtube a googlevideo a daju sa na tych istych strankach aj prehrat a ja potrebujem presne to iste…

    Dakujem za kazdu radu

  6. problem mam asi taky, ze mam stranku na ktorej mam flashove videa ale mam malo miesta na serveri a potrebujem aby sa flashove video nacitalo z ineho servera a objavilo na stranke

    v tomto pripade sa video krasne zobrazi, pretoze video je ulozene na aktualnom serveri z ktoreho sa nacitava video…
    !KF¢{^

  7. AC_FL_RunContent = 0;

    if (AC_FL_RunContent == 0) {
    alert(\“Táto stránka vyžaduje AC_RunActiveContent.js.\“);
    } else {
    AC_FL_RunContent(
    ‚codebase‘, ‚http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0‘,
    ‚width‘, ‚400‘,
    ‚height‘, ‚350‘,
    ‚src‘, ‚Video/marek svedsko 1/marek svedsko 1‘,
    ‚quality‘, ‚high‘,
    ‚pluginspage‘, ‚http://www.macromedia.com/go/getflashplayer‘,
    ‚align‘, ‚top‘,
    ‚play‘, ‚true‘,
    ‚loop‘, ‚true‘,
    ‚scale‘, ‚showall‘,
    ‚wmode‘, ‚window‘,
    ‚devicefont‘, ‚false‘,
    ‚id‘, ‚marek svedsko 1‘,
    ‚bgcolor‘, ‚#f7fbf3‘,
    ‚name‘, ‚Video/marek svedsko 1/marek svedsko 1‘,
    ‚menu‘, ‚true‘,
    ‚allowFullScreen‘, ‚true‘,
    ‚allowScriptAccess‘,’sameDomain‘,
    ‚movie‘, ‚Video/marek svedsko 1/marek svedsko 1‘,
    ‚salign‘, “
    ); //end AC code
    }

  8. a v tomto pripade potrebujem nacitat video z ineho servera ale neviem ako mam zadat tie cesty aby to fungovalo, pripadne ci tam je vobec ten subor crossdomain.xml potrebny…

  9. ‚codebase‘, ‚http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0‘,
    ‚width‘, ‚400‘,
    ‚height‘, ‚350‘,
    ‚src‘, ‚http://www.mafiavidea.hostuju.cz/Habura 2007 I/Habura 2007 I‘,
    ‚quality‘, ‚high‘,
    ‚pluginspage‘, ‚http://www.macromedia.com/go/getflashplayer‘,
    ‚align‘, ‚top‘,
    ‚play‘, ‚true‘,
    ‚loop‘, ‚true‘,
    ‚scale‘, ‚showall‘,
    ‚wmode‘, ‚window‘,
    ‚devicefont‘, ‚false‘,
    ‚id‘, ‚http://www.mafiavidea.hostuju.cz/Habura 2007 I/Habura 2007 I‘,
    ‚bgcolor‘, ‚#f7fbf3‘,
    ‚name‘, ‚http://www.mafiavidea.hostuju.cz/Habura 2007 I/Habura 2007 I‘,
    ‚menu‘, ‚true‘,
    ‚allowFullScreen‘, ‚true‘,
    ‚allowScriptAccess‘,’sameDomain‘,
    ‚movie‘, ‚http://www.mafiavidea.hostuju.cz/Habura 2007 I/Habura 2007 I‘,
    ‚salign‘, “

  10. ‚src‘, ‚http://www.mafiavidea.hostuju.cz/Habura 2007 I/Habura 2007 I‘,
    ‚id‘, ‚http://www.mafiavidea.hostuju.cz/Habura 2007 I/Habura 2007 I‘,
    ‚name‘, ‚http://www.mafiavidea.hostuju.cz/Habura 2007 I/Habura 2007 I‘,
    ‚movie‘, ‚http://www.mafiavidea.hostuju.cz/Habura 2007 I/Habura 2007 I‘,

  11. prapacte ale druhy kod sa neda vloyit kvoli nejakej ochrane… potrebujdem zmenit udaje v tom scripte aby sa video nacitalo z externej domeny a src zmenit na http://www.mafiavidea.hostuju.cz/Habura 2007 I/Habura 2007 I nepomaha, samozrejme zmenil som aj ostatne parametre :(

    pouizvam free hosting na xf.cz mozno je problem v tom ze nepovoluju nacitavat udaje z externej adresy ale ci take obmedzenie vobec existuje to netusim a neviem ani ako tomu zabranit, lebo som si vsimol ze na mnohych strankach su umiestnene flashove videa z portalov youtube a googlevideo a daju sa na tych istych strankach aj prehrat a ja potrebujem presne to iste…

    Dakujem za kazdu radu

  12. Tak v tom, ze video je ulozene na inom serveri je hlavny problem. Dotycny admin na danom serveri (odkial maju byt videa natiahnute), by tam musel ulozit subor crossdomain.xml

    Pokial je server, z ktoreho chcete nacitat videa vas, tak nan umiestnite subor crossdomain.xml s povolenim pre vasu stranku (na ktoru chcete nacitat videa), alebo pre vsetkych s hviezdickou (odporucam pre zaciatok), vid. clanok.. Crossdomain je potrebny, pretoze Flash player taketo „presuvanie“ obsahu z bezpecnostnych dovodov nedovoluje.

    Adresy (cesty) je potrebne vzdy zadavat v absolutnom tvare http://www.atd,

  13. uhm…. dakujem tak tu absolutnu cestu som tam samozrejme zadal a crossdomain.xml umiestnil na root servera odkial sa mali tahat videa ale s tym postupom ohladom actionscriptu stale hodilo error pri kompilacii tak som sa rozhodol ze videa umiestnim na googlevideo a z nich sa daju pekne nacitat, nie je to sice to prave co som chcel ale aj tak je to priatelny kompromis.

    Dakujem za vas cas a rady :) Zelam vela uspechov

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *