Aplikacijo ocisti za sobom!?

Aplikacijo ocisti za sobom!?

offline
  • Pridružio: 30 Maj 2005
  • Poruke: 1014
  • Gde živiš: Mbabane

Aplikacija A u movieClip ucitava (load-uje) aplikaciju B.

Kao reakcija na odredjen event, aplikacija A unload-uje aplikaciju B.

Destruktori u actionscriptu 2 ne postoje (ja ne nadjoh). Kako aplikacija B da zna kako da se ocisti memoriju koju je zauzela. Tacnije, gdje je okidac koji kaze "aplikacijo nestajes, ocisti za sobom"?

Cak i da u svakom svom SWFu napravim funkciju koja ce osloboditi memoriju, ne znam nacin da se ona bude pozvana, a da to ne radim ja eksplicitno. Aplikacija A koja ucitava aplikaciju B (a to moze biti bilo sta) nije duzna da brine o pozivanju njenih destruktora zar ne?

Kako se ovo rjesava?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 19 Maj 2005
  • Poruke: 5224
  • Gde živiš: Oslo

U, ti si bas uporna sa AS2.0.
Nisam nikad cula da AS2.0 ima dobro resenje bez memory leak za ovako nesto.
AS3.0 zato ima sta god ti srce pozeli.
unloadAndStop(); (dodaj: () na kraj linka)
listener: Event.UNLOAD;
...

Ako se ikad odlucis (dobijes dozvolu) za AS3.0, svi tvoji problemi ce biti reseni. smešak



offline
  • Pridružio: 30 Maj 2005
  • Poruke: 1014
  • Gde živiš: Mbabane

Takav mi je posao, nisam birala Sad.

Prosto mi je nevjerovatno da jedna ovako vazna stvar nema rjesenje.

Imam widget koji ucita youtubeplayer. Kad aplikacija ubije widget player ostane. Ovo je jednostavna aplikacija a rjesenje za unloadovanje ovog pleyera em daje glavobolje, em je zaista glupa zakrpa i krajnje idiotski nacin rjesavanja problema, ne samo da nije dobar vec je i pitanje koliko je stabilan ...

Uh ...

offline
  • Pridružio: 19 Maj 2005
  • Poruke: 5224
  • Gde živiš: Oslo

Naravno da u dvojci uvek mozes da koristis loadMovie ili loadMovieNum pa da pocistis sa unloadMovie , unloadMovieNum. Cini se da bi to odradilo posao i resetovalo tvoj player i sve to sto ucitavas. Jesi li to probala?

offline
  • Pridružio: 30 Maj 2005
  • Poruke: 1014
  • Gde živiš: Mbabane

Ja znam kako da ocistim widget, ali sam widget ne zna kada ga unloadujem, pa nemam nacin da potjeram taj mehanizam (alikacija ne zna koji widget je ucitan i nikakap eksplicitno zvanje ne dolazi u obzir).

Player ce se unloadovati kada uradim njegov destroy ali nema ko da potjera taj destroy. Smile

Vrtim se kao hrcak u onom njegovom tocku Laughing

offline
  • Pridružio: 19 Maj 2005
  • Poruke: 5224
  • Gde živiš: Oslo

Da li sam dobro razumela, tu fali jedan zajednicki roditelj koji bi vodio racuna o svoj svojoj deci?
A da organizujes po klasama i da napravis posebnu klasu, recimo, Ucitavac koja ce znati sve o delovima koji su ucitani?
To zahteva novu reoganizaciju cele aplikacije, ali mozda pomogne.

offline
  • Pridružio: 30 Maj 2005
  • Poruke: 1014
  • Gde živiš: Mbabane

Hm ... pa ne znam sad Laughing

Iz swf aplikacije ucitavam swf widget. Glavna aplikacija ima svoj loader kome kaze

swfloader.loadClip(uri_swf, swf_holder);

i sad moj swf widget tu radi svoje, ucita player uzme memorije ...
u jednom momentu mi dosadi i cu ja iz glavne aplikacije uraditi ovo

swfloader.unloadClip(swf_holder);

Ovo ce njega "pocistiti" sa scene, ali ova komanda ni na koji nacin ne obavjestava sam widget da je u toku njegov unload i da mora da ocisti za sobom, tako da ce se skloniti dugmici i to ali ce player ostati.

Dakle nije mi jasno na koji mehanizam ucitani swf moze znati da je u toku njegovo sklanjanje sa scene! Kakav god "ucitavac" napravila u glavnoj aplikaciji, on ne moze da pozove funkciju koja je definisana u wigdetu zar ne?

Moje rjesenje je da sa oba key listener-a (i aplikacije i widget-a) cekam key za uloadovanje widgeta i tako trigerujem akciju. Ovo nikako nije rjesenje koje moze da ostane.

Kako swf igrice na flash sajtovima npr. pisane u AS2 ciste memoriju za sobom?

offline
  • Pridružio: 19 Maj 2005
  • Poruke: 5224
  • Gde živiš: Oslo

Znaci i sam widget ima svoj load? I unload...
Lepo bi bilo da i load playera u widget moze da se kontrolise iz glavne aplikacije a ne iz widgeta. Onda bi imala punu kontrolu nad aplikacijom.

A ti ne mozes da pozoves iz glavne aplikacije prvo neku widgetovu funkciju koja ce prvo da unloaduje taj player, a tek onda da ti unlodujes i sam widget? Ako funkcija nije zasticena, nego public, moglo bi i to da se odradi.

offline
  • Pridružio: 30 Maj 2005
  • Poruke: 1014
  • Gde živiš: Mbabane

ZAboravih da se javim, a necu da ostavim krnji topik, mozda jos nekog od ovog boli glava.

Da, tako nesto radi posao iako sam sumnjala da ce proci ... Smile

U tom slucaju postojanje iste funkcije za ciscenje memorije u svakom mom widget-u, koja ce biti pozvana prije unload-a widget-a iz glavne aplikacije, rijesice problem ... do daljnjeg Laughing

Hvala tamti Wink

Ko je trenutno na forumu
 

Ukupno su 839 korisnika na forumu :: 13 registrovanih, 0 sakrivenih i 826 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: ArchaBasha, banebeograd, Ben Roj, Koridor, Metanoja, MidnighT_AlieN, milan.vukovic, milenko crazy north, Milos ZA, Tas011, wolverined4, zlaya011, šumar bk2