Autor Zpráva
nemesix
Profil
Dobry den
Pracujem na hre ktora je zalozena na prechode cez mapu ktora je komplexne ulozena v poli , pole[x][y][z] ,kde z je pocet objektov ktore sa nachadzaju na prislusnej pozicii x a y ,ide o obrovske mnozstvo objektov preto je toto pole vytvorene prave takto , pricom mapu je nutne vytvarat priamo za behu aplikacie ,tj rozhodnem sa pridat objekt na konkretne miesto ,a to sa ulozi na konkretne miesto do pola podla "x" a "y" ,toto vsetko mam funkcne ,ale mam problem s ukladanim dat , povodne som si myslel ze pouzijem sharedobject ,ale ten pre mnohorozmerne polia vytvara "svoje kopie ,pre kazde spustenie ,a prepis je zlozity" ,najidealnejsie co by mi vyhovovalo by bolo ich ukladat externe napriklad do textoveho suboru , problem je ten ze nepoznam sposob akym toto spravit ,pocul som nieco o tom ze sa to robi cez php ,ale ja to potrebujem len lokalne {staci ked 1 vytvorim tu mapu ,a potom uz bude hra samotna len nacitavat to co potrebuje} ,tiez som pocul o roznych externych aplikaciach ,ktore sa k tomu pouzivaju , no nemam s nimi dobre skusenosti ,{nefungovali mi ,resp boli prilis zlozite na nastavovanie} ,akekolvek riesenie , byt blbe ktore mi uniklo vrelo uvitam ,taktiez velmi ocenim akukolvek radu pre ulozenie dat ,diky
DoubleThink
Profil *
nemesix:
ale ten pre mnohorozmerne polia vytvara "svoje kopie ,pre kazde spustenie ,a prepis je zlozity"
Tohle trochu rozveď.
nemesix
Profil
tak napriklad :
//vytvorime nejake pole:
pole = new Array();
for (var a=0; a<60; a++) {
	pole[a] = new Array();
	for (var b=0; b<60; b++) {
		pole[a][b] = new Array();
	}
}

pole[5][20][6] = "abc";
a = SharedObject.getLocal("test");

//vytvorime trojrozmerne pole v ramci objektu a ktory pouzivame k ukladani cez sharedobject
a.data.pole = new Array();
for (var a=0; a<60; a++) {
	a.data.pole[a] = new Array();
	for (var b=0; b<60; b++) {
		a.data.pole[a][b] = new Array();
	}
}
//ulozime prvok pola , a prikazeme zapis dat niekde na disk 
a.data.pole[5][20][6] = pole[5][20][6];
a.flush();

//ale po vypisani nasledovneho vypisu dostavam vypis "undefined abc" ,preto som usudil
// ze sharedobject je urceny pre jednouchsie ukladania najme premennych
trace(a.pole[5][20][6]+" "+pole[5][20][6])



Moderátor DoubleThink: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
DoubleThink
Profil *
SharedObject je ekvivalent Cookie. Může uchovávat (skoro) jakýkoliv typ objektu.
Není mi jasné, proč voláš metodu flush() - slouží k vynucení uložení dat na disk (jinak se data uloží až po zavření SWF)
nemesix
Profil
DoubleThink:
flush som pouzil len ako ulozenie dat ,chapem ze by tam byt nemusel , ale ide mi najme o to preco vyssie uvedeny kod vypise pre a.data.pole[5][20][6] hodnotu undefined ,pricom by tam mala byt hodnota pola podla a.data.pole[5][20][6] = pole[5][20][6]; rovna "abc"
nemesix
Profil
ok ,zrejme som to vyriesil , problem bol v tom ze mi flash nealokoval dostatocnu pamet pre take velke pole ,manualne som to zvysil na neobmedzenu velkost , ale napada ma ze ked to bude na inom pc ,tak tam moze dojst prave k takejto chybe , tj ze tam nebude mat povolenie pre alokovanie viac ako 1Mb miesta , je mozne ,prip. existuje prikaz ktorym by toto bolo mozne zvysit , napriklad uz pocas preloadera?
DoubleThink
Profil *
SharedObject.flush() má argument minDiskSpace:int, kterým můžeš vyžádat na uživateli zvětšení úložného prostoru.
nemesix
Profil
diky ,skusim to

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0