Autor Zpráva
peke
Profil *
Zdravím,
potřebuji vytvořit mapu světa s kontinety a státy, a jde mi o to, aby bylo možné po přihlášení se do uživatelského profilu ( XML ) měnit barvu jednotlivých států v závislosti na návštěvnosti daného státu.

Příklad: pan XXX se naloguje do svého profilu a v minulosti navštívil např. asii ( což bude zaznamenáno v XML souboru ) a ve flashové mapě se tento původně bílý kontinent zbarví do červena ( již navštívený ).

Takže, je potřeba dostat z XML nějaké proměnné do ActionScriptu ( barva, stat ) z těchto proměnných vytvořit podmínky ( jestli je barva zelená - navštívil asii jen jednou, oranžová - 2x, atd... ) a název kontinentu ( státu ).

Zní to jednoduše, ale nevím si rady s tím XML. Pokud někdo máte nápad jak na to, prosím o radu.
XXX
Profil
Mooc pekny priklad :-D V Kazdem pripade si tady nevystacis jen s flashem a XML,ale budes potrebovat napr. jeste PHP na ukladani do toho XML, protoze Flash umi jen nacitat data a ne ukladat. Reseni tvojeho nacitani je jednoduche. Ve Flashi si jednotlive staty (movieClipy) pojmenuj napr. takhle: stat1_mc, stat2_mc, stat3_mc, .... az statX_mc. Kazdeme z nich priradis promenou cislo, ktera bude obsahovat prave cislo tohohle statu:

for(var i:Number = 1; i<= X; i++){ //misto X das samozrejme cislo posledniho statu
var nazevStatu:String = "stat"+i+"_mc";
_root[nazevStatu].cislo = i;
}

ted uz das napr do udalosti onRelease kazdeho z techto movieClipu skriptik, ktery bude napr do pole ukladat cisla tech MC

no a XML bude na zacatku prazdne, protoze zatim neklikl uzivatel na zadny stat. nebo spis by mohlo vypadat takhle:

<staty>
</staty>

oznacene staty budes ukladat do XML napr takhle:

<staty>
<stat>
<cislo>10</cislo>
<pocetZobrazeni>1</pocetZobrazeni>
</stat>
</staty>

takhle budes postupne pridavat dalsi staty, takze to nekdy pozdeji bude vypadat treba takhle:

<staty>
<stat>
<cislo>10</cislo>
<pocetZobrazeni>1</pocetZobrazeni>
</stat>
<stat>
<cislo>48</cislo>
<pocetZobrazeni>2</pocetZobrazeni>
</stat>
<stat>
<cislo>76</cislo>
<pocetZobrazeni>4</pocetZobrazeni>
</stat>

...

<stat>
<cislo>14</cislo>
<pocetZobrazeni>8</pocetZobrazeni>
</stat>
</staty>

pri spusteni tvojeho SWF nactes XML do vicerozmerneho pole, ktere bude vypadat takhle:
poleStaty = [[10,1],[48,2],[76,4], ... ,[14,8]];
Nakonec zase pomoci cyklu nastavis vsem statum jejich barvu pomoci podminky if .. else if ....
for(var i:Number = 1; i<= X; i++){
var nazevStatu:String = "stat"+i+"_mc";
var cisloBarvy:Number = 0;
for(var a:Number = 1;a<= poleStaty.length;a++){ //tento cyklus delas pro vsechny prvky pole
if(i == poleStaty[a][0]){ //pokud je cislo statu rovno cislu statu v poli
cisloBarvy = poleStaty[a][1]; //nastavi se cisloBarvy na cislo u daneho statu v poli
}
}
//ted uz se jen nastavi pomoci podminek barva statu na barvu, jakou potrebujes:

if(cisloBarvy == 0){
//tady uz si nastavis barvu, jak potrebujes ;)
}else if(cisloBarvy == 1){

}else if(cisloBarvy == 2){

}
...
else if(cisloBarvy > 20){

}
}
Toto téma je uzamčeno. Odpověď nelze zaslat.

0