Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 13 odgovora
  • 3.713 pregleda

Najnovija ↓

Nece da smestii u niz 'container._width'... 29.07.2008. u 15:27 · pre 222 meseca #1
Pokusavam da smestim u niz sirinu svake uchitane slichice! Naravno, ne radi! Jedino kada trace-ujem 'container._width' on ih izlista, ali u niz nece, pa nece..

Funkcija koja ucita slichice:
Code:

var container:MovieClip;
var mcLoader:MovieClipLoader = new MovieClipLoader();

function Ucitaj(){
    for(i=1; i<=8; i++) {
        container = this.createEmptyMovieClip("container" + i, this.getNextHighestDepth());
        mcLoader.loadClip("d:/www/final/africko pleme - 0" + i +".jpg", container);
        trace(container);
    }
}

Ucitaj();


Zatim sam pokusaho da ubacim u niz vrednosti sirina:
Code:

var aWidht:Array = new Array();

function onLoadInit(container:MovieClip) {
    trace(container._width);
    i=0;
    aWidth[i++] =container._width;
}


..i naravno button za prikaz:
Code:
btnSubmit.onRelease = function() {
    for(j=1; j<=8; j++){
        trace(aWidht[j]);
    }
}

mcLoader.addListener(this);

Re: Nece da smestii u niz 'container._width'... 29.07.2008. u 16:38 · pre 222 meseca #2
Nije uobicajena praksa da se prvo slovo funkcije "capitalizuje" ali nebitno... to je kao po nekoj konvenciji o programiranju...

Problem koji vidim moze da bude ako nisi prethodno formirao Array.
var aWidth = new Array();

Ako jesi, imash gresku na drugom mestu, a to je da u funkciji onLoadInit() ti svaki put uradis i=0; i to ga vraca uvek na 0, a tebi treba counter koji ce da se povecava svaki put a ne da se vraca na nulu svaki put. (ta funkcija se poziva onoliko puta koliko "container" objekata imash)

Drugo, moze da bude problem sto tebi "container" menja "vlasnika" svaki put. Tj. ti dinamicki pravis objekte i svaki od njih postaje "container". Pitanje je da li se onLoadInit() poziva dovoljno brzo, pre nego sto se stvore novi objekti u onom loop-u i zamene sadrzaj "kontejneru". Trebalo bi da tokom trejsa uvek dobijes istu vrednost ako se ne varam? Sto ne valja.

Mozda ti je najbolje da u niz (array) tj. svaki njegov element stavis kompletne objekte pa im onda citas _width direktno.

Code:
var arraySaSvimObjektima:Array = new Array();

function Ucitaj(){
    for(i=1; i<=8; i++) {
        arraySaSvimObjektima[i] = this.createEmptyMovieClip("container" + i, this.getNextHighestDepth());
        mcLoader.loadClip("d:/www/final/africko pleme - 0" + i +".jpg", arraySaSvimObjektima[i]);
        trace(arraySaSvimObjektima[i]);
    }
}


btnSubmit.onRelease = function() {
    for(j=1; j<=8; j++){
        trace( arraySaSvimObjektima[i]._width );
    }
}

Potpis
www.zeitgeistmovie.com - film koji mora svako da vidi! (free to download)
Re: Nece da smestii u niz 'container._width'... 29.07.2008. u 16:59 · pre 222 meseca #3
Da, shvatio sam gresku.

Pokushao sam i tvoju varijantu, ali javlja 'undefined'. Nesto slicno sam i ja probao, pa nije islo. Zato sam pretpostavio prvo da treba onLoadInit, posto tek tada dobije container._width...

Mozda, neka druga ideja?!

Trebam da dodjem do sirina tih load-ovanih slichica!

Hvala unapred za svaki predlog, reshenje...
Re: Nece da smestii u niz 'container._width'... 29.07.2008. u 17:08 · pre 222 meseca #4
Probao sam i sledec:
Code:
function Ucitaj(){
    for(i=1; i<=8; i++) {
        arraySaSvimObjektima[i] = this.createEmptyMovieClip("container" + i, this.getNextHighestDepth());
        mcLoader.loadClip("d:/www/final/africko pleme - 0" + i +".jpg", arraySaSvimObjektima[i]);
        trace(arraySaSvimObjektima[i]);
    
        trace(container._width);

    }
}


I javlja za trace(container._width) 'undefined'!!!
Re: Nece da smestii u niz 'container._width'... 29.07.2008. u 18:08 · pre 222 meseca #5
Probaj umesto ovoga
Code:

var aWidht:Array = new Array();

function onLoadInit(container:MovieClip) {
trace(container._width);
i=0;
aWidth[i++] =container._width;
}

ovo
Code:

var aWidht:Array = new Array();

function onLoadInit(container:MovieClip) {
trace(container._width);
aWidth.push(container._width);
}
Potpis
/(bb|[^b]{2})/
Re: Nece da smestii u niz \'container._width\'... 29.07.2008. u 22:58 · pre 222 meseca #9
Hahahahaha

var aWidht:Array = new Array();

function onLoadInit(container:MovieClip) {
trace(container._width);
i=0;
aWidth[i++] =container._width;
}
Pazi malo kad kucaš :-)
Potpis
/(bb|[^b]{2})/
Re: Nece da smestii u niz \'container._width\'... 30.07.2008. u 12:24 · pre 222 meseca #10
Dobro si primetio, ali ni sa ispravkom ne radi.. Hvala jos jednom na trudu..
Problem mi ne da mira, pa sam kopao krsa po netu. Mnogi imaju slican problem, kao da ne postoji resenje, jer izgleda da funkcija onLoadInit ne prosledjuje promenljive _width,_height van nje. Mozda gresim, ali nikako da proradi..
Re: Nece da smestii u niz 'container._width'... 30.07.2008. u 12:39 · pre 222 meseca #11
Stvar je u tome sto ti radis sledecu stvar:

container = this.createEmptyMovieClip(...)

Tebi je container u stvari "empty movie clip", mozda zato nema width?

probaj da ucitas slike preko loadMovie(...)
zatim uradi jednu seljacku foru ;)
napravi jedan movieclip negde van stage-a sa tri frejma u sebi i neka stop()-uje u prvom frejmu.
Kada ucitas slike, reci tom movieClipu gotoAndPlay(2) i neka on vrti u krug drugi i treci frejm non-stop. Neka u trecem frejmu proverava da li je _width > 0. ako jeste, neka se stopuje ponovo u prvom frejmu.
Potpis
www.zeitgeistmovie.com - film koji mora svako da vidi! (free to download)
Re: Nece da smestii u niz 'container._width'... 30.07.2008. u 12:55 · pre 222 meseca #12
Hehehehe... Dobra fora, kontam da ima smisla!! No, ja sam se sinoc toliko iznervirao da sam rekonstruisao citav kod, tako da sirinu image dobijem preko PHP!
Hvala mnogo josh jednom, i extra je ideja!! :D

P.S. bice novih problema, pa se citamo! :D
Re: Nece da smestii u niz 'container._width'... 30.07.2008. u 17:50 · pre 222 meseca #13
Greškom sam kopirao tvoj originalni kod umesto svog koda (onog prvog kojeg sam poslao). Dakle treba:
Code:
var container:MovieClip;
var mcLoader:MovieClipLoader = new MovieClipLoader();
function Ucitaj() {
    for (i=1; i<=8; i++) {
        container = this.createEmptyMovieClip("container"+i, this.getNextHighestDepth());
        mcLoader.loadClip("d:/www/final/africko pleme - 0" + i +".jpg",  container);
        trace(container);
    }
}
Ucitaj();
var aWidht:Array = new Array();
function onLoadInit(container:MovieClip) {
    trace(container._width);
    aWidht.push(container._width);
}
btnSubmit.onRelease = function() {
    for (j=0; j<8; j++) {
        trace(aWidht[j]);
    }
};
mcLoader.addListener(this);

Radi 100% provereno :-)
Potpis
/(bb|[^b]{2})/
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme