Autor Zpráva
FlashManiac
Profil
Cyao,
měl bych jeden dotázek..
Jak mám udělat to abych dostal do jednoho každého prvku pole, který naplním přes cyklus FOR vlastnosti, které si nadefinuju ve vlastní třídě
např.
class TPokus{

var prvniVlastnost:Number;
var druhaVlastnost:Boolean;
function nejaka(){
//kod funkce
}
}

diky..
Hanz
Profil
FlashManiac
A budou se ty názvy měnit? Jestli ne tak normálně
for(i=0;i<5;i++){
nazev_pole.push(název_té_proměnné)
}
FlashManiac
Profil
no mě jdo o to abych se mohl na každé pole odkázat třeba takto:
pole[23][85].prvniVlastnost=...
pole[23][86].druhaVlastnost=...

if(pole[1][66].prvniVlastnost==...){
//akce
}
a tak podobně..Nevím esli jsi dělal v pascalu nebo Delphi,ale tam je to vyřešené tak, že si nejdřív nadeklaruju vlastní strukturu(např TPokus) a pak jen tuto sturkturu přiřadím každému prvku v poli. V pascalu to vypadá takto:
TPole=Array[0..max,0..max] of TPokus;
a tím každý prvek pole získá vlastnosti TPokus, čili se na to můžu odkázat: pole[23][85].prvniVlastnost a tohle nevím jak ve Flashi docílit..
FlashManiac
Profil
pro ukázku hodím nějaký skriptík..
var mapa:TMapa=new TMapa();

var mojePole:Array = new Array();
for(i=1;i<=3;i++){
mojePole[i]=new Array();
for(j=1;j<=3;j++){
mojePole[i][j].push(mapa.obsazeno);
}
}
trace(mojePole[1][2].obsazeno);
Hanz
Profil
FlashManiac
No pochopil jsem, ale nějak nechápu význam. K čemu je to dobré, když se stajně odkážeš pomocí toho mojePole[1][2]
K čemu by tam bylo to .obsazeno, když to stejně jiné proměnné neobsahuje, nebo se pletu?
FlashManiac
Profil
no já jsem to předvedl jenom jako příklad.. v praxi bych potřeboavl např. aby tam byly třeba číselné nebo booleanovské proměnné nebo stringy.. aby zkrátka jedno každé pole mohlo mít několik různých vlastností..
př.
pole[1][1].obsazeno //boolean
pole[1][1].cislo //number
pole[1][1].cislo2 //number
pole[1][1].retezec //string

prostě aby to každé pole mělo stejnou strukturu...viz uvedený kód z Pascalu
Hanz
Profil
FlashManiac
No tohle nejde, ale takhle by to šlo:
var pole:Array = new Array();
for (i=0; i<5; i++) {
pole[i] = new Array();
for (a=0; a<4; a++) {
pole[i]["neco"+a] = random(30);
}
}
trace(pole[1]["neco2"]);
trace(pole[1]["neco1"]);

Je to jen příklad a možná to není přesně co potřebuješ, ale myslím, že svůj účel to plní.
FlashManiac
Profil
Rozhodně ti musím poděkovat za snahu.. ^-^ ale to není ani trochu to co bych potřeboval.. asi jsem to nevyjádřil dost jasně..*smutný pohled*, potřebuju,aby každé pole bylo jakýmsi kontejnerem na data, který může obsahovat proměnné toho typu,které si nadeklaruju ve své třídě... Pro přiblížení... pokud si vytvořím několik MC a do každého naperu proměnné stejné struktury..
př.
MC budou mít jména CLIP1,CLIP2,CLIP3,..
v každém MC bude tato struktura proměnných:
var rozhodni:Boolean;
var cislo1:Number;
var cislo2:Number;
var retezec:String;


a já se pak budu odkazovat:
clip1.rozhodni=false;
clip2.cislo1
.
.

No a podobnou stukturu potřebuju narvat do pole.(jestli bude jednorozměrné nebo dvourozměrné teď nehraje roli.. jen potřebuju do každého prvku pole naprat tuhle strukturu... NO a pokud by to AS neuměl..tak snad JAVA script by to dokázat měl,jen nevím jak se potom na to budu dotazovat pomocí AS..XD
THX všem za případnou pomoc.. je to totiž pro mě dost zásadní problém a nikde jsem na něj nenašel odpověď ..zatím..doufám..
FlashManiac
Profil
No tak už jsem na to přišel.. díky že ses tím zabýval...
to co jsem potřeboval vypadá takhle:
var pole:Array=new Array();

for(p=1;p<=3;p++){
pole[p]=new Array();
for(j=1;j<=3;j++){
pole[p][j]=new TMapa;
}
}

teď už se na to můžu odkazovat jak jsem psal výše pole[2][2].vlastnost=hodnota
Hanz
Profil
FlashManiac
A je to new TMapa ???
Mi to s tím nefunguje, ale když jsem míto toho new TMapa dal new Object() tak to dělá to co jsi chtěl (teda myslím).
Toto téma je uzamčeno. Odpověď nelze zaslat.